2011-04-08から1日間の記事一覧

SRM502 Div2 Hard(1000) TheCowDivTwo

TheCowDivTwo動的計画法。i番目までの牛からj匹を選んで和をNで割った余りがkとなる組み合わせの個数を覚えておく。 #include <vector> using namespace std; class TheCowDivTwo{public: int find( int N, int K ) { int M = 1000000007; // [i][j] 和をNで割った余</vector>…

SRM502 Div2 Easy(250) TheProgrammingContestDivTwo

TheProgrammingContestDivTwo実際のコンテストでもrequiredTimeが分かれば楽なのだが……(´・ω・`) #include <vector> #include <algorithm> using namespace std; class TheProgrammingContestDivTwo{public: vector <int> find( int T, vector <int> requiredTime ) { sort(requiredTime.be</int></int></algorithm></vector>…

SRM502 Div1 Medium(500) TheProgrammingContestDivOne

TheProgrammingContestDivOne与えられたタスクを全て解く場合には、最も点数が高くなる順番は簡単に求められる。タスクが2つの場合に解く順番ごとの点数を求めると、pointsPerMinute[0]*requiredTime[1]>pointsPerMinute[1]*requiredTime[0]ならばタスク0か…

SRM502 Div1 Easy(250), Div2 Medium(500) TheLotteryBothDivs

TheLotteryBothDivsa,b∈goodSuffixesについてaがbの接尾辞ならば、bが無くても当たり籤は変わらない。例えばサンプル3ならば4747は要らない。goodSuffixesから他の要素が接尾辞になっているような要素を除いた集合Sを考える。当たり籤はちょうど1個のSの要素…

SRM502

Easy (250) 0 Medium (500) 0 Hard (1000) 0 Challenge 0 結果 1946 → 1762250は解き方はすぐ分かったけど実装に時間が掛かった上、バグっててシステム落ち。500は解き方すら分からなかった。。・゚・(ノД`)・゚・。解けた人数が2桁とかの難しい問題ならまだしも、け…