2010-12-01から1ヶ月間の記事一覧

12/31 PKU

1904 King's Quest 王様にはN人の息子がいる(1息子iをS(i)、少女iをG(i)として、息子iが少女jを好きなときS(i)->G(j)のリンクを、リストに息子iと少女jの関係が書かれているときG(j)->S(i)のリンクを張った有向グラフを作り、強連結成分分解。各息子について…

12/29 PKU

3140 Contestants Division 学校がいくつかあって、各学校には何人か生徒がいる。学校同士はリンクがあって、リンクをみると木構造になってる(?)。2つのリンクで結ばれてる集合に分けたい。生徒数の差を最小にするとき、その最小値は?普通に木DPやるだ…

TopCoder SRM492 Div1

250 木がたくさん、地面に垂直に植えてある。いくつかの木を縮めて(縮めるっていうか時間を巻き戻すらしいけど)、木のてっぺんが一直線上に並ぶようにしたい。いくつの木を縮めたらいい?やるだけ。double使うときは誤差に注意 550 重みつき無向グラフ状の…

TopCoder Member SRM491 Div1

250 1からNまでの数を立方体に書いて、サイコロを作る。向かい合う目の和はどれも等しく、K以上じゃなきゃいけない。同じ数を2回以上使っちゃいけない。回転させて同じになるものは1通りとして考える。何通りできる?やるだけ。同じ目の組み合わせで、回転を…

SRM489 Div1Hard

時間が数分足りなくてだめだったのでPracticeで解き直してみた #include <vector> #include <cstring> #include <algorithm> using namespace std; #define MOD 1000000007 class AppleTrees { long long dp[40][2][1600]; int N; public: int gcd(int p, int q) { while(q>0){ int tmp =</algorithm></cstring></vector>…