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

AOJ 0069 Drawing Lots II

方針 制約から全通りシミュレーションしても余裕. 左か右に横線がある場合は置けないので注意する(このコードはテストケースが弱いから通ってしまったが) ソースコード #define FOR(i, a, b) for (int i = (a);i < (b); ++i) #define REP(i, n) FOR(i, 0, …

AOJ 0531 Paint Color

解法 座標圧縮→dfs(bfs)で領域を埋めていく 座標圧縮しないと、配列でベニヤ板の領域分取ることはできない ソースコード #define FOR(i, a, b) for (int i = (a);i < (b); ++i) #define REP(i, n) FOR(i, 0, n) int w, h, n; int X, Y; bool field[1024][102…

JOI 2012-2013 問5 Fish

意外と簡単だったので悲しい。 しかし、一瞬だけ見て多倍長?と思って問6にいったのはマズかった。 #define FOR(i, a, b) for (int i = (a);i < (b); ++i) #define REP(i, n) FOR(i, 0, n) typedef long long LL; LL cube[128][128][128]; void create(vector<LL></ll>…

JOI 2012-2013 問3 Signboard

int main() { int res = 0; int n; string s, a; cin >> n >> s; for(int i = 0; i < n; i++) { cin >> a; bool f = false; for(int j = 0; (j < a.size()) && !f; j++) //始点を決める if(a[j] == s[0]) // 間隔を決める for(int k = 1; (k < a.size()) && …

AOJ 0561 Books

反省 dp[i][j][l] := 今までにi冊売り、今見ているジャンルjの本をl個売った時の最大の買取価格 最初はこれでDPしようとしたが、メモリが確実に収まらないのは自明だし(それでも頑張って削減して通そうとしたが)、書いている途中でlがいらないのにも気づいて…

AOJ 0568 Pasta

前の状態2つ考えないといけないと思ってたけど,1つで十分だった. やっぱメモ化再帰のほうが何も考えずに書ける. dp[i][j][k] := i日目にjのパスタをk個連続で作ったとき,i日目までの条件を満たす予定の数 n日目までの条件を満たす予定の数 ∋ i日目までの条…

AOJ 0536 Shuffle

汚い ソースコード typedef pair<int, int> P; int main() { int n, m, p, q, r, x, y; while(cin >> n, n) { vector<P> cards; cards.push_back(make_pair(1, n)); cin >> m >> p >> q >> r; while(m--) { // flag : 0 => Left, 1 => Middle, 2 => Right int flag = 0; v</p></int,>…