2009-12-23から1日間の記事一覧

SRM456 Div1 Midium(450) CutSticks

CutSticks二分法。最初ループの条件を while((b-a)>1e-10) としていたら、無限ループになるテストケースがあった。参加した方のブログを見るに、二分法のループ回数は定数にするものらしい。 今回の問題は、最初の幅が高々109、求められている精度が10-9で、…

SRM456 Div2 Easy(250) AppleWord

AppleWord長さnのアップルワードは apn-3le。 #include <string> #include <ctype.h> using namespace std; class AppleWord { public: int minRep( string word ); }; int AppleWord::minRep( string word ) { int n = (int)word.length(); if ( n < 5 ) return -1; int c = </ctype.h></string>…

SRM456 Div1 Easy(250) SilverDistance

SilverDistanceスタートとゴールがチェス盤でいう違う色のマスならば少なくとも1手前に進む必要がある。同じ色のマス間の移動ならば、前に動く必要は無い(斜めのみの移動でも同じ手数)。 #include <algorithm> using namespace std; class SilverDistance { public: </algorithm>…

SRM456

Easy (250) 0簡単だと思ったのに、abs()忘れてシステムテスト落ち。もったいない。Medium (450) 0二分探索という手があったか。Hard (1050) 0見てない。結果 1435 → 1349orzこれはひどい。

PKU 1026 Cipher

PKU

Cipher各文字は一定の周期で移動する。サンプルインプットの (4 5 3 7 2 8 1 6 10 9) ならば、 1,4,7 は 1→4→7→1 と周期3で 2,5 は 2→5→2 と周期2で巡回する。 kを周期で割った余りだけ動かして計算時間を短縮する。時間制限がけっこう厳しい。 #include <stdio.h> </stdio.h>…

PKU 1025 Department

PKU

Department複雑だけど問題文の通りに書くだけ。1秒ごとにシミュレートしても間に合う。エレベータを特殊な部屋とみなしたり入退室の処理は固定時間なので省いたりして多少はコードがすっきりした。出力はエージェントのコード順にソートするように指示され…