入力ファイルには、次の形式のリンクのリストが含まれています。
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時間の解決策を探しています。 改善できるボトルネックはありますが...