2011-11-01から1ヶ月間の記事一覧

AOJ 1174 Identically Colored Panels Connection

AOJ

問題 問題文読んで。 解法 色の変化をdfsする。隣接するマスの判定もdfsで。 コード int h,w,c; int dx[4] = {1,0,-1,0}; int dy[4] = {0,-1,0,1}; int p[8][8]; bool ck[8][8]; bool valid(int x, int y){ return x>=0&&x<w&&y>=0&&y</w&&y>

AOJ 1173 The Balance of the World

AOJ

問題 括弧のバランスがとれているか判定。 解法 左括弧ならstackに入れ、右括弧ならstackから取り出す。 左括弧と右括弧の対応が違っていたり、左括弧が余っていたり、右括弧が多すぎたりすればNG コード bool solve(string str){ map<char, int> t; t['['] = 1; t[']']</char,>…

AOJ 1172 Chebyshev's Theorem

AOJ

問題 整数nに対し、n 解法 試し割りで素数判定 コード bool isPrime(int n){ for(int i = 2; i*i<=n; i++){ if(n%i == 0) return false; } return true; } int main(){ int n; while(cin>>n,n){ int ans = 0; FOR(i,n+1,2*n+1){ if(isPrime(i))ans++; } cout<

Project euler Problem 57

式をぼーっと眺めてると A_(n+1) = A_n + 2*B_n, B_(n+1) = A_n + B_nだと気づいたのでそのとおりに書いた。 a = 3 b = 2 count = 0 1000.times{ count += 1 if a.to_s.size > b.to_s.size a, b = a + 2*b, a + b } puts count