私は Java プログラマーです。アルゴリズムが正しい場合でも、codechef を使用した送信で制限時間の超過が何度も発生することがわかりました。プログラミング コンテストで Java のソリューションを提出する際に採用すべきテクニックはありますか?
2509 次
1 に答える
6
CodeChef では、Java でのすべてのサブミッションには、ネイティブ言語 (c/c++/pascal など) の対応するものよりも 2 倍の時間制限があります。ただし、言及されていないことの 1 つは、Java ソリューションで非常に頻繁に発生するメモリ消費が高くなると、Judge の動作が非常に遅くなることです。CodeChef ジャッジは、すべての Java プログラムに対して 64 MB のメモリ設定で実行されます。できるだけ少ないメモリを使用して、同じソリューションを -Xms = 64 MB でローカルで実行してみてください。
時間制限の増加は、プログラムのメモリ使用量が許容される最大値 (この場合は 64 MB) に近づくと、JVM がガベージ コレクタを呼び出して CPU を集中的に使用し、プログラムの実行を遅らせることによっても発生する可能性があります。
于 2012-04-23T17:31:00.587 に答える