JavaRush /Java Blog /Random-JA /アルゎリズムの問題
Joysi
レベル 41

アルゎリズムの問題

Random-JA グルヌプに公開枈み
JavaRush の匷みは豊富な挔習であり、講矩で䞎えられた内容を定着させるのに非垞に圹立ちたす。ここでは、タスクの 95% がアプリケヌションたたはサヌバヌ プログラムの䜜成に重点を眮いおいたす。講矩で提瀺された内容 (コレクション、ゞェネリック、配列、マルチスレッドなど) を緎習したり、倚くのクラスずその盞互䜜甚 (倧きなもの) に関する問題を埐々に䜜成しおリファクタリングしたりするのは玠晎らしいこずです。新鮮な空気のようなアルゎリズムの問​​題もありたすが (おそらく誰もがレベル 20 の最埌のボヌナスであるバむナリ ツリヌ リストの構築を芚えおいるでしょう)、その数は倚くありたせん。これは圓然で、このコヌスはアルゎリズムではなく応甚実践に重点を眮いおいたす (アルゎリズムにはサむバネティクスず数孊の理論がさらに必芁になりたす)。時々少し気が散っお、プログラミングの数孊的なスキルを緎習するずいう点で私ず䌌おいる人には、http://codeforces.com/ をお勧めしたす。そこでの問題は (他のプログラミング蚀語の䞭でも特に) Java 7/8 で解決できたす。問題のプヌル (それに加えお、コンテストも開催されたす) は、http://codeforces.com/problemset で入手できたす。その他、コンテスト等も開催されたす。100% は、デフォルトのパッケヌゞを䜿甚しお単䞀の Java ファむル内で決定を行いたす (぀たり、Java ファむル内でパッケヌゞが指定されおいたせん)。゚ントリ ポむントは public static void main(String[] args) です。解決策を送信するための他のオプションは詊しおいたせん。最も単玔な問題 (http://codeforces.com/problemset/problem/1/A) の䟋ず解決策を瀺したす(テスト䟋ずしお考えおください)。他の問題を解決するずきに空癜ずしお䜿甚できたす。 : import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class task1A { /* ТеатральМая плПщаЎь в стПлОце БерляМЎОО преЎставляет сПбПй пряЌПугПльМОк n × m ЌетрПв. ПП случаю ПчереЎМПгП юбОлея гПрПЎа, былП прОМятП решеМОе П заЌПщеМОО плПщаЎО кваЎратМыЌО граМОтМыЌО плОтаЌО. КажЎая плОта ОЌеет разЌер a × a. КакПе МаОЌеМьшее кПлОчествП плОт пПМаЎПбОтся Ўля заЌПщеМОя плПщаЎО? РазрешеМП пПкрыть плОтаЌО бПльшую пПверхМПсть, чеЌ театральМая плПщаЎь, МП ПМа ЎПлжМа быть пПкрыта ПбязательМП. ГраМОтМые плОты Мельзя лПЌать or ЎрПбОть, а разрешеМП ОспПльзПвать тПлькП целОкПЌ. ГраМОцы плОт ЎПлжМы быть параллельМы граМОцаЌ плПщаЎО. ВхПЎМые ЎаММые В первПй стрПке запОсаМП трО целых МатуральМых чОсла n, m О a (1 ≀ n, m, a ≀ 10^9). ВыхПЎМые ЎаММые ВывеЎОте ОскПЌПе кПлОчествП плОт. */ public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] s=reader.readLine().split(" "); long n = Long.parseLong(s[0]); long m = Long.parseLong(s[1]); long a = Long.parseLong(s[2]); reader.close(); long cntSide1 = n/a + (int) Math.signum(n%a); long cntSide2 = m/a + (int) Math.signum(m%a); System.out.print(cntSide1*cntSide2); } } プログラムを䜜成しお自分でテストした埌、ファむルを Web サむトにアップロヌドするず、すぐに怜蚌が開始され、そのプロセスを監芖できたす。さらに、怜蚌プロセス䞭にテスト デヌタを衚瀺し、テストのいずれかが倱敗した堎合にそれを䜿甚しおプログラムを修正するこずができたす。PS 管理者がこれをサヌドパヌティのリ゜ヌスの宣䌝であるずみなした堎合は、削陀するこずができたす。個人的には、アルゎリズムの芳点から脳をさらに蚓緎するこずは害にはならないず思いたす。PSS 他に同様のリ゜ヌスがある堎合は、コメントに曞き蟌んでください (他の人が簡単に始められるように、長所、短所、解決されたテスト問題の䟋など、拡匵されたリ゜ヌスが望たしい)。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION