2011-11-13から1日間の記事一覧

AOJ - Problem 1045 : Split Up!

問題文 数列(a_1, a_2, ... , a_n)をAとBの2つに分け、Aの総和とBの総和の差が最も少ないときの差を求める問題です。動的計画法を使う問題かと思いきやnが20以下と小さいので深さ優先探索(DFS)で全探索してもAcceptすることができるようです。 #include <iostream> #in</iostream>…

AOJ - Problem 1043 : Selecting Teams Advanced to Regional

問題文 ICPCのコンテストのチームの選抜に関する問題です。これくらいの問題は簡単に解けないとICPCでは歯が立たないレベルですね。4つのデータ(正解数,ペナルティ,ID,所属)をpair > >を使ってソートします。ソートしたあとは順位のよい方からみていって条件…

AOJ - Problem 1141 : Dirichlet's Theorem on Arithmetic Progressions

問題文 素数に関する問題です。エラトステネスの篩であらかじめ素数表をつくっておくとよいでしょう。 #include <iostream> #include <vector> using namespace std; const int MAX = 1000001; char p[MAX] = {0}; void f(){ for(int i=2 ; i < MAX ; i++ ) p[i] = 1; for(int </vector></iostream>…

AOJ - Problem 1166 : Amazing Mazes

問題文 幅優先探索でスタートからゴールまでの最短経路を求める問題です。 入力の数が偶数行と奇数行で異なり、入力がしんどい問題でした。 2年前はきちんとコードが書けなかったのでそう考えると私も成長しているのかもしれません。 #include <iostream> #include <map> #i</map></iostream>…

AOJ - Problem 1174 : Identically Colored Panels Connection

問題文 問題文をよく読んで全探索する問題です。同じ色でつながっているパネルはDFSで調べるよいでしょう。 5回までパネルの色を変更できますが5回目は目標の色にするとよいようです。(ソースコードではしていない) #include <iostream> #include <vector> #include <algorithm> using nam</algorithm></vector></iostream>…