Entries

昨日のICPCは辛かった……

http://www.cs.titech.ac.jp/icpc2012/

 ↑に参加しました。もちろんチーム名は秘密。その上で、初参加の感想でも書いてみる。
注:問題全文はhttp://www.psg.cs.titech.ac.jp/icpc/icpc2012/contest/all_ja.htmlにあります。

○A問題(超訳)

賢王「1年10ヶ月、大の月(20日)と小の月(19日)が交互に繰り返される暦を考えたぜ!
だけど退屈しないように3で割り切れる年はうるう年ってことで全部大の月にするけどおk?」
国民「おk」
→誕生日から1000年1月1日までの日数を求めろ


 A問題ということで簡単なもの。とりあえず、1年1月1日からある日付までの日数を求める関数を作り、そいつで「1年1月1日から1000年1月1日までの日数」-「1年1月1日から誕生日までの日数」を出す作戦で解いた。解いた……のだが、3人1組のチームなもので、キーボード打ち込むメンバーに内容を伝えるのが大変だった。字が汚いと大変だな色々と……。

○B問題(超訳)

ある自然数と桁数が与えられる

自然数を桁数に合わせて0補完(例:83268→083268)

数字を並び替えた時の最大の数と最小の数の差を求める

その差を桁数に合わせて(ry

この作業をしていると数字が確実にループするから、
その最初の数字と繰り返し数とタイミングを教えろください


 Bもとっとと解きたいところだったが、まさかのどん詰まり。「3人いるので2人はB、自分はCを解く」という作戦、いや大ミスを犯してしまう。「大ミスって何が」? 簡単だ。Cを解く方法があらかたまとまったところで2人を見ると、まだコードを半分も書けていなかったからだ。
 ……「数値を1桁づつ配列に放り込む→昇順・降順にソート→引き算→結果を記録しておいて繰り返し部分を検出」といった方向で書くことを決めた後でCに取り掛かったため、もう完成しているだろうと思ったらこれだよ!
 いくらなんでもこれはマズイと思い、自分もコーティングに参加する。見ると、数字を配列に放り込むところで詰まっていることが判明。んなアホな……2人共自分より先輩なんですぜ?
 なぜかpowとか使ってたので普通の方法に直して(10で割った余り、つまり下位桁から順に配列に入れる仕組み)、配列から数字に戻す方の関数も全部書き直した。2進展開のコードも書いたこと無いんですか先輩……。
 で、これだけ直せば通るだろと思ってコンパイルして(C++で参戦)入力をかますと……出力がおかしい。おそらく反転させる(最小を出してから数字を反転させれば最大になるため)ところでミスっているのだが、どういう訳か上手くいかない。手こずっているうちに時間切れになってしまった。

○C問題(超訳)

博士「サイコロを上から同じ場所に落とすお! サイに細工したから4・5・6の目の方向にだけ転がるお! たくさん落としてから、上から見える目を記録する実験だお(キリッ」
助手「(小細工とか絶対参加者のためだろ常識的に考えて……)」


 サイコロを最大100個まで落とす、といった暇な実験……いや問題。「201x201の配列(一番上のサイコロを上から見た時の目と高さを記録する)を用意して中央から落とすと仮定し、サイコロの数だけひたすら状態を更新する」、といった地味な方法で解けると踏んでいたのだが(以下略)。

○D問題以降
 解き方が分からなかったので略。

○反省点と今後の予定
 次からは自分がコード書く……ってのはとりあえず置いとくとして。普段はHSPを使っているためC++には慣れていなかったのがまず問題か。いやHSPって便利だし(ここ重要)、記念参加的な意味も無いとは言えないけど、それでも悔しいものは悔しい。勉強せねば。でもあれって闇の言語だってWikiに書いてあったのが唯一の懸念材料
関連記事
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://ysrken.blog.fc2.com/tb.php/17-a4c25232

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

プロフィール

YSR

Author:YSR
「YSR」「YSRKEN」「◆YSRKENkO6Y(~2013/08/25)」「◆YSRKEN.ceVZZ(2013/08/26~)」として活動しています。
プログラミングと艦これが趣味です。
プロフ画像はCrystalDiskInfoの水晶雫ちゃんです。
主な創作物についてはhttp://ysrken.blog.fc2.com/blog-entry-76.htmlをご覧ください。

カレンダー(月別)

10 ≪│2017/11│≫ 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

全記事表示リンク

全ての記事を表示する

QRコード

QR

総アクセス数

アクセス数

現在の閲覧者数: