2010-02-08
過去問マラソン(#13):SRM154
過去問マラソン | |
![]()
Easy(350): CheatCode
- 配点350点て何
- 文字と必要打鍵数のペア、の配列をchainと仮に呼び
- 後だけでなく前に余計な文字を打つのもアリだとsample caseで気づき
- 途中に関係ない文字が入る場合はNG、ということにsample caseで気づき
- ていうか問題ちゃんと読んだほうが結果的に早いのでは?
- 149.37pt (50'25'') 時間かかりすぎ
- passed system test
コメント
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20100208
2010-02-07
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20100207
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);
}
};
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20100205
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
トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/20100117