Particle

競技プログラミングについての雑記

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

AOJ 0525: Osenbei

AOJ

Rが小さいので、行単位でひっくり返すのは全て試します。 列は自由にひっくり返すことができるため、表になっているものの個数か裏になっているものの個数の内大きい方を使えば良いです。 数えるのにO(RC)かかるので、全体ではO(RC・2^R)になります。 #include<cstdio></cstdio>…

AOJ 0524: Searching Constellation

AOJ

星座にある星(固定しておく)から写真にある星までのベクトルを考えれば、並行移動の仕方はn通り あることが分かります。n通り全て試すためには、1通り試すのにO(m+n)やO(mlogn)程度で良いです。辞書順にソートしておくことで、O(n^2+mn)で解くことができます…

AOJ 0522: JOI and IOI

AOJ

文字列から"JOI"と"IOI"を検索する 2文字目と3文字めが共通しているので、1文字目は後で考えると少し速くなりそうです。 #include<iostream> #include<string> using namespace std; string s; int main(){ while(cin>>s){ int a=0,b=0; for(int i=1,l=s.size()-1;i</string></iostream>

AOJ 0523: Card Game

AOJ

太郎が持っている:1 花子が持っている:0 残ってない:-1のようにすると、配列1つと単純なループで解くことができます。(入出力も簡単) #include<iostream> #include<cstring> using namespace std; int card[200]; int main(){ int n; while(cin>>n,n){ memset(card,0,sizeof(car</cstring></iostream>…

Croc Champ 2012 - Qualification Round

A. 前から数える。本番ではstring s[3000]としてRE #include <iostream> #include <string> using namespace std; string s[30000]; int main(){ int n,ans = 0; cin>>n; for(int i = 0; i < n; i++)cin>>s[i]; int f = 1; for(int i = 0,l = s[0].size(); i < l && f; i++){ c</string></iostream>…