2013-01-01から1年間の記事一覧

AOJ0091

AOJ

問題:Blur解法:DFS 適当にやると計算量とメモリが爆発しそうなので、無駄に枝をはやさないように気をつける。 左上から右下に向かう落としかたに限定して、行単位で全部消えない場合はそこで探索をうちやめる。 盤面のコピーはとらず1つの盤面を使い回す(…

CODEVS2.1予選に参加しました。

CODEVS2.1に参加しました。予選で何をやったかについて書いて行きたいと思います。[予選開始] ルールを、消えたブロックの周囲の邪魔ブロックが消えることと、点数計算式の計算方法の部分だけ読みました。参加登録も行いました。 CODEVS2.0が非常におもしろ…

SRM579Div2

Easy:PrimalUnlicensedCreatures クリーチャーが何体か居て、それぞれのレベルがvectorで与えられる。 自分の初期レベルが与えられる。 自分より低いレベルのクリーチャーを倒すことができ、倒したクリーチャーのレベル/2(切り捨て)だけ自分のレベルがUPする…

TCO13 Round1B

Easy: 2人組みを作る。1組の能力は2人の能力の合計。 一人ひとりの能力の配列が与えられるので、一番能力が高いペアと低いペアとの能力差の最小値を求めよ。一番能力が高い奴は一番能力が低い奴とペアを組むべき。 ソートしてそれぞれに求めて最大値-最小…

SRM571Div2

Easy: 'o'の数を数える #include <vector> #include <algorithm> #include <iostream> #include <string> using namespace std; #define rep(i,n) for(int i=0;i<n;++i) class FoxAndGame { public: int countStars(vector <string> result) { int res=0; rep(i,result.size()) res += (int)count(result[i].begin(),result[i].en…</n;++i)></string></iostream></algorithm></vector>

SRM555Div2

Mid: ビット列が文字列で与えられる。 5の倍数の文字列で、与えられた文字列を分割していった時に、最小で何分割で済むか。 ただし不可能な場合は-1を返す。ナップサックなDPをする。汚い。 #include <vector> #include <algorithm> #include <iostream> #include <string> using namespace std; #</string></iostream></algorithm></vector>…

SRM561Div2

Mid: 以前本番で解けなかったので復習 制約が n 制約が n #include <vector> #include <algorithm> #include <iostream> #include <string> using namespace std; class ICPCBalloons { public: int minRepaintings(vector <int> Count, string Size, vector <int> AC) { int res=1<<30; int M=0,L=0; vector<int></int></int></int></string></iostream></algorithm></vector>…

AOJ0200

AOJ

Traveling Alone: One-way Ticket of Youth ワーシャルフロイド法って実は使ったことなかった。 mの存在感がない。 timeって使ったらgccさんが怒るらしいのでtimuにした(恥ずかしい)。 #include<iostream> #include<algorithm> using namespace std; const int N = 110; int timu</algorithm></iostream>…

SRM568Div2

Mid: 箱が何個かあって、i番目の箱には赤いボールがR[i]個、緑のボールがG[i]個、青いボールがB[i]個入っている。 それぞれの箱で、1色のボールのみ入っている状態にするために、必要なボールの移動回数を求める。 これも本番で解けなかったorz..まず箱が2以…

SRM567Div2

Mid: SSR(A,B) = (√A,√B)^2 という関数があって、1SSR(A,B)が整数となるものの数を求める。 本番で解けなかった。SSR(A,B) = (√A,√B)^2 = A^2 + B^2 + 2*√(AB) より、√(AB)の値が整数なら条件を満たす。例えばA=2に固定した時 √2 * √2、 √2 * √8、 √2 * √18…

AOJ0131

AOJ

問題:Doctor's Strange Particles ライツアウトの解を求める。1個しか解がないと言う甘え仕様。 上から順番に処理していく。 まず1行目について全パターンの押し方を試す。 i行目はi-1行目を全て消さないと行けないので、押し方は一意に定まる。 そして一番…

AOJ0129

AOJ

問題:Hide-and-Seek Supporting System 円と2点の間の線分の当たり判定。ただし2点が両方共円の中にある場合は無視する。 #include<iostream> #include<vector> #include<complex> using namespace std; int main() { int n,m; while(cin >> n,n) { vector<complex<double> > wallp; vector<double> wallr; for</double></complex<double></complex></vector></iostream>…

AOJ0120

AOJ

問題:Patisserie DP難しい。 DPわけわからん。 #include<iostream> #include<string> #include<sstream> #include<vector> #include<cmath> using namespace std; int main() { string s; while(getline(cin,s), !s.empty()) { stringstream ss(s); int W; ss >> W; vector<int> R; int r; while(ss >> r) R.</int></cmath></vector></sstream></string></iostream>…