2010-02-08
過去問マラソン(#13):SRM154
過去問マラソン | |
Easy(350): CheatCode
- 配点350点て何
- 文字と必要打鍵数のペア、の配列をchainと仮に呼び
- 後だけでなく前に余計な文字を打つのもアリだとsample caseで気づき
- 途中に関係ない文字が入る場合はNG、ということにsample caseで気づき
- ていうか問題ちゃんと読んだほうが結果的に早いのでは?
- 149.37pt (50'25'') 時間かかりすぎ
- passed system test
2010-02-07
2010-02-05
過去問マラソン(#12):SRM153(続き)
過去問マラソン | |
ちょっとブランクが空いたが気を取り直して。オフィスの環境テストを兼ねて過去問にトライ。
無刻印のHHKB Professional 2で初めて書くC++。打ちやすい。矢印キーが無い事が不慣れなので指慣らしに時々過去問でも解くか。
Medium(450): Collision
- 今日も問題が頭に入ってこない...
- 要は実装するだけ?
- 211.83 (41'45'') インストール作業の裏でやっているとはいえ時間かけすぎ
- passed system test
using namespace std; #define sz(a) int((a).size()) #define pb push_back #define all(c) (c).begin(),(c).end() #define tr(c,i) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++) class Collision { vector<int> az; int iz, azn, tz; double memory(int i,int used,double nocol){ // have memory. if(i==azn) return nocol; int a = az[i]; if (used+a > iz) return 0; long double r = 1.0; for(int j=0,l=iz,re=iz-used; j<a; j++,l--,re--){ r = r * re / l; } return memory(i+1,used+a,nocol*r); } double no_memory(){ long double r = 1.0; for(int i=0,l=iz;i<tz;i++,l--) { r = r * l / iz; } return (double)r; } public: double probability(vector<int> assignments, int ids) { az.assign(all(assignments)); azn=sz(az); iz = ids; int total = 0; tr(az,it) total += *it; if (total > iz) return 0.0; tz = total; double r1 = memory(0,0,1), r2 = no_memory(); return abs(r1 - r2); } };
2010-01-17
過去問マラソン(#11):SRM153
過去問マラソン | |
戦闘用ローカルマシンにgitを入れたので、SRM152までのコードを昨日gitでcommit&pushしたつもりだったがディレクトリごと消えていた。git操作ミスか?
過去問マラソン的にはここに全部書いてるからまあいいけど、gitスキル的にやばい…
- *.cppファイルを自分で一括消去してるっぽい。…重複排除しようと思ってgit rmを使ったのを思い出した
TimeMachineが最後にバックアップした1/11の分(※USB足りないのでTimeMachine用1TBHDDは普段は繋いでない)まで覚えててくれました。SRM150の分まで入ってる。TimeMachine++
Easy(250): Inventory
- 問題読んでも全然頭に入ってこないよー
- とりあえずコード書いたけどSample Caseの最後のやつが合わない
- なるほど。有理数演算しないと駄目か。
- 前に書いたはずのFractionクラスのコードを引っ張り出す
- これでどうだ
- 30%ルールに引っかかるお
- いろいろ削って最小限にしないとダメか
- テンプレートとか駄目なのかなあ
- 削った。submit
- failed system test
- なに!
- sales[i]==0 || daysAvailable[i]==0 ってdaysAvailableだけ見ればいいか
- submit#2
- failed system test (again)
- あ、わかった。Fraction<int>では精度が足りない。long longにしよう
- submit#3
- passed system test