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

AOJ 10023 - Shuffle

aoj

substrが便利ですね. そして,Problem 100はこれで全て終わりました.2年前はこの程度で唸っていたので成長したと感じています. #include<iostream> int main(){ std::string s; while(std::cin >> s, s != "-"){ int m, i; std::cin >> m; for(;m--;){ std::cin >> </iostream>…

AOJ 10033 - Stacking Block II

aoj

なるべくきれいに書きたかった. 山の番号付けは1-100(x 0-99)ではないことに留意する. #include<iostream> #include<stack> #include<queue> int main(){ std::string command; std::stack<char> stack[101]; std::queue<char> p_queue; while(std::cin >> command, command != "quit"){ if(com</char></char></queue></stack></iostream>…

AOJ 10032 - Stacking Block I

aoj

空白を含むときはgetlineをつかおう. #include<iostream> #include<stack> #include<queue> int main(){ std::string command; std::stack<char> stack; std::queue<char> p_queue; while(std::cin >> command, command != "quit"){ char argument; if(command == "pop"){ p_queue.push(stack.to</char></char></queue></stack></iostream>…

AOJ 10031 - Search II

aoj

さっきと同じコードでとおった. algorithmライブラリを制限したらどうすればいいかを考える. ここの基数ソートを参考にしたんですよ. 限界まで依存するライブラリを減らしたかったからStackをやめたんです. そしたら,全然違うじゃないですか.ちょっと…

AOJ 10030 - Search I

aoj

set_intersection: 積集合をもとめる. 第5変数はback_inserter(D)みたいにする. ようやく一回でとおった. #include<iostream> #include<algorithm> #include<vector> int main(){ int n, q, i, j; std::vector<int> T, Q, D; std::cin >> n; for(i=0;i<n;i++){ std::cin >> j; T.push_back(j); } std::cin >> q;</n;i++){></int></vector></algorithm></iostream>…

AOJ 10029 - Sort II

aoj

あ,要素数足りない: x 降順だろうな: x もうだめだ. #include<iostream> #include<algorithm> int main(){ int n, arr[1000000]; std::cin >> n; for(int i=0;i<n;i++){ std::cin >> arr[i]; } std::sort(arr, arr+n); for(int i=0;i</n;i++){></algorithm></iostream>

AOJ 10028 - Sort I

aoj

PEだったなんて言えない #include<iostream> #include<algorithm> int main(){ int n, arr[1000]; std::cin >> n; for(int i=0;i<n;i++){ std::cin >> arr[i]; } std::sort(arr, arr+n); for(int i=0;i</n;i++){></algorithm></iostream>

AOJ 10027 - Card Game

aoj

文字列の比較は"a"と"abc"ならばaが先(短いほうが先?)になるらしい. main(){ int n, ap=0, bp=0; char a[110], b[110]; scanf("%d", &n); for(;n--;){ scanf("%s", a); scanf("%s", b); int comp = strcmp(a, b); if(comp > 0){ ap += 3; }else if(comp ==…

AOJ 10026 - Standard Deviation

aoj

はm(平均)がわからないと計算できない. 平均をもとめるには全得点がわからないといけない. そうすると,すべての点を配列として保持しないといけない. それはめんどうなので,を利用した. #include<math.h> main(){ int n, i, s; double a, b, c, m, alpha_s; wh</math.h>…

AOJ 10025 - Triangle, math.hをincludeするとき

aoj

math.hをincludeするときは-lmオプションをつける #include <math.h> main(){ double a, b, C; scanf("%lf %lf %lf", &a, &b, &C); double rad = C*M_PI/180, S = a*b*sin(rad)/2, h = b*sin(rad), ar = a+b+sqrt(a*a+b*b-2*a*b*cos(rad)); printf("%lf\n%lf\n%lf\n"</math.h>…

AOJ 1041 - Kyudo: A Japanese Art of Archery

菫さんに影響されてやりたくなった競技。 C言語 #include<stdio.h> s; main(n,m){ while(scanf("%d",&n),n/=4){ s=0; for(;n--;) scanf("%d",&m),s+=m; printf("%d\n",s); } return 0; }</stdio.h>

AOJ 10017 - How many ways?

aoj

O(n^3)だったはず。n>=1000でTLEするはず。 #include<iostream> int CountCombination(int n, int x){ int res = 0; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ if(i+j+k == x && i != j && i != k && j != k){//i,j,kに重複がないように</iostream>…

AOJ 10022 - Finding a word

aoj

大文字と小文字を区別しない。読んでない。 単語ごと。読んでない。 小さな液晶に2つのウィンドウ表示するので見落としがちです その代わり、transformという関数を知ったのでよかったです。 ラムダ式もつかいました。便利すぎます。 #include<iostream> #include<algorithm> #in</algorithm></iostream>…

AOJ 10015 - Finding Missing Cards

aoj

AOJ先生が4x13の配列つくるといいよと言ってくれましたが、俺はこのset_differenceを使うぜ。 まず、すべてのカードの配列をつくります。 次に、持っているカードの配列をつくります。 その差は失くしたカードになります。set_differenceの第5引数は第一のit…