スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SRM 524 Div2 hard

昨日書けなかった分.

この問題は私は解けてませんが,人のコード見てわかった (つもり) なので一応書きます.


hard 問題

与えられる数値 N (1以上10000以下) に対して以下の条件を満たす最小値 x を求める.

1. x は N の倍数である.
2. x は別途定められた使用できない数字を含んでいない

x が存在しない場合は "IMPOSSIBLE" と出力せよ.
x が存在して,その桁数が9桁未満の場合は x を出力せよ.
x が存在して,その桁数が9桁以上の場合は,"abc...def(g digits)" と出力せよ.
abc は x の最初の3桁,def は x の最後の3桁,g は x の桁数である.


例:

N = 8
使用できない数字 2,3,4,5,6,7,8,9
この場合,条件を満たす値のうち最小値は 1000 (8*125)である.

N = 9
使用できない数字 1,3,4,5,6,7,8,9
この場合,条件を満たす値のうち最小値は 222222222 (9*24691358)である.
これは 9 桁以上なので "222...222(9 digits)" と出力する.

N = 10000
使用できない数字 0
この場合,条件を満たす値は存在しないので "IMPOSSIBLE" と出力する.


続きから解説.

続きを読む

スポンサーサイト

SRM 524 Div2 medium

easy に引き続き medium 問題の解説

medium 問題

あなたは n (1以上10^12以下)個のマジックダイヤモンドを見つけました.
これらのダイヤを魔法で運びます.
x 魔法 (x は整数) を使うと x 個のダイヤを運ぶことができます.
しかし,x が素数の場合は,ダイヤを運べずに失ってしまいます.
また残っているダイヤの個数以上の魔法は使えません.
失わないように運ぶためには複数回魔法を使わなければならない場合もあります.
これらのダイヤを運ぶために,魔法を使う回数の最小値はいくらになるか求めなさい.


例:

8個のダイヤモンドがある場合.
8は素数ではないので 8 魔法を使ってよい.
よって1回で全てを運べる.


13個のダイヤモンドがある場合.
13は素数でなので 13 魔法は使えない.
なので素数ではない 9 と 4 に分けて運ぶ.(他の組み合わせもあり)
よって2回で全てを運べる.


続きから解説.

続きを読む

SRM 524 Div2 easy

今回から問題ごとに解説書くことにした.

easy 問題

N (1以上200以下) 個の荷物を運びたい.
一つの荷物の大きさは 1×1×1 である.
これらの荷物を運ぶために,ひとつの大きな箱 (x×y×z) を作ってそれに荷物をつめる.
荷物は一度で運ばなければいけないし,運ぶ際に箱に隙間ができてはいけない.
荷物を運ぶコストを x+y+z としたとき,最もコストが低くなる運び方を求め,そのコストを答えよ.

例:荷物の個数 N = 6 の場合

条件を満たす箱の大きさは
6×1×1,1×2×3
の二通り (コストが同じ場合は除外)
この中でコストが最低なのは,1×2×3 の時でコストは 6 となる.


続きから解説.

続きを読む

SRM 523 Div1

二回目の SRM 参戦.

結果からいうと Div1 の洗礼を受けて木端微塵.

Rating も 1286 から 927 へと急降下.

泣きたい.けど一応まとめる.

続きを読む

TopCoder

昨日いきなり登場した TopCoder とは何か.

Web上で、世界中のプログラマが参加するプログラミングコンテストを主催している企業 (はてなキーワード)


というわけで用はオンラインでのプログラミングコンテストです.

僕が昨日参加した SRM というのは,月に何回かのペースで開催されているコンテストです.

参加者はレーティングによって Div1 と Div2 に分けられます.

Div1 の方が問題も難しいのです.

SRM の簡単な流れ

・開始前

開始前に参加登録を行います.
参加登録が済むと,自分の部屋が決められます.


・Coding Phase (75分)

問題が3つ出されるのでそれの解答となるプログラムを作ります.
問題はそれぞれ難易度が異なり,難しい問題ほど配点が高いです.
プログラムを作ってサンプルのテストが通れば,そこまでにかかった時間によって点数がもらえます.
でもここでの点数はまだ仮の点数です.

・休憩 (5分)

・Challenge Phase (20分)

ここでは,同じ部屋の人のプログラムを見ることができます.
それで,バグがあると思ったら相手のプログラムに攻撃することができます.
見事バグが発覚すれば,自分に50点が追加され,攻撃された相手のプログラムの点数は0点になります.
攻撃が失敗したら,自分の点が25点減点されます.

・System Test

ここまで終了したら,最終的なテストが行われます.
このテストに通過すれば晴れて得点が与えれることになります.


とこんな流れです.

プログラミング能力とアルゴリズム能力を磨くためにも今後も頑張りたいと思います.
お知らせ
相互リンクしてくださる方募集してます!!
Twitter 相互フォロワ―も募集してます!!
コメントも募集してます!!
感想でも質問でも気軽にどうぞ!!

ランキング参加してます!!
クリックお願いします!!

にほんブログ村 高校生日記ブログ 高専生へ
検索フォーム
最新コメント
リンク
admin
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。