プログラマーのための競争№2

オブジェクトのスペースがあります 。 各オブジェクトは4バイトの識別子で識別されます。 オブジェクトの間には方向性のコミュニケーションがあります。 各リンクは、初期オブジェクトの識別子、最終オブジェクトの識別子、および4バイトの情報ロードによって特徴付けられます。 接続シーケンスobject1-> object2; object2-> object3; ... routesを形成しますルートの長さは、リンクの数によって決まります。 複数のオブジェクトが1つのオブジェクトを通過できます。 ルート接続の1つの最終オブジェクトが別のルート接続の初期オブジェクトである場合、ルートを閉じることができます。 閉じたルートの長さは、リンクへのリンクの数です。この場合、最終オブジェクトは、このリンクを含まない別のルートリンクの初期オブジェクトです。



入力ファイルには、次の形式のリンクのリストが含まれています。



4バイトの開始オブジェクト識別子

4バイトの宛先識別子

4バイトの通信負荷



必要な

入力ファイルで最大長のルート(複数ある場合はルート)を見つけ、出力ファイルに次の形式で保存します。



4バイトのルート長

12 xルート長ルートリンクリスト



コンテストのルールとソースファイルはこちらにあります。



がんばれ!!!



UPD:

現時点(2011年3月15日17:30)



2つの答えがあります

最初の答えの分析:



ファイルはルートファイルです:no



2番目の答えの分析:



ファイルはルートファイルですか:はい

ルートリンクの数:264

ルートが開いているかどうか:はい

ルートは回答オプションです:はい



しかし、ルートの長さは最大ではなく、ファイル内により多くのルートがあり、それほど単純ではありません。



正解はありませんが、競争は続きます



UPD:

現時点(2011年3月16日17:00)

新しい答えはありません



競争のダイナミクスを考えると、1回の試行のルールは取り消されます



UPD:

現時点(2011年3月17日18:00)

新しい答えはありません

競争は続く



だから、 プログラマー競争の第2位の発表以来、週は終わった



競技中に、2つの答えが出されました。正しい答え-0です。タスクは解決できず、無期限に停止されます。



親愛なる読者! このエントリを公開から300年後に(おそらく少し早くまたは少し遅れて)読んだ場合、2011年にはこのタスクは難しいと考えられていたことを知っています。一週間。 私たちの時代の平均的なコンピューターのプロセッサーのクロック速度は3 GHzで、1つのコンピューターの平均的なプロセッサー数は4でした。 問題を解決できる場合は教えてください。私がまだ生きている場合は、ブログのページにあなたのクールさを書きます;)



UPD:

プログラマーのためコンテスト番号2のタスクは、この千年紀で解決されました!



ファイル分析結果:



ファイルがルート:はい

ルートリンクの数:90899

ルートが開いているかどうか:はい

ルートは回答オプションです:はい



回答は、コンテストの発表の17日後の3月31日に受信されました。

主人公の名前はアレックスです! [ escoman @ ]

おめでとうございます! この問題を解決できる人はあまりいないようです。本当にクールです!



ミニインタビュー::)



タスク2のソリューションを簡素化するために、ソースファイルをFromPointフィールドですぐに並べ替えて保存しました。 これは、後でリンクのリストでバイナリ検索を使用するのに役立ちました。



元の通信フィールド(FromPoint、ToPoint、およびData)に加えて、MaxLenフィールド(この接続を通過するリンクの最大数を格納するフィールド)を追加しました。 さらに、このフィールドは、アルゴリズムが通信を通過したかどうかの指標です。 これにより、同じ接続を数回たどることができなくなりました。



その結果、私のラップトップで結果として得られるアルゴリズムは、約2時間の解決策を探しています。 改善できるボトルネックはありますが...



All Articles