川のブログ

川の適当気ままなブログです。 

2016-03-01から1ヶ月間の記事一覧

AOJ 0084 Search Engine

こんにちは川です。 今回は特にこれといったことはないです。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { string str; getline(cin,str); int point=0; bool flag=1; for(int i=0;i<str.size();i++){ if(str[i]==' '||str[i]=='.'||str[i]==','){ if(i-point>2&&i-point<7){ if(!flag)cout<<" "; for(int j=point;j</str.size();i++){></bits/stdc++.h>

AOJ 0071 Bombs Chain

こんにちは川です。 今回は爆破する爆弾を'2'に置き換えて'2'がなくなるまでひたすらループさせました。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; for(int i=1;i<=n;i++){ string str[8]; for(int j=0;j<8;j++)cin>>str[j];</bits/stdc++.h>…

AOJ 0078 Magic Square

こんにちは川です。 今回は問題文に書いている通りにコードを書きました。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n,n){ int mas[15][15]={},x=n/2,y=x+1; mas[y][x]=1; for(int i=2;i<=n*n;i++){ x+=1;y+=1; while(1)</bits/stdc++.h>…

AOJ 0034 Railway Lines

こんにちは川です。 今回も特にないですね。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int dis[11],up,down,sum; char s; while(cin>>dis[1]>>s){ sum=dis[1]; for(int i=2;i<=10;i++){ cin>>dis[i]>>s; sum+=dis[i]; } cin>>up>>s>>down; </bits/stdc++.h>…

AOJ 0105 Book Index

こんにちは川です。 今回は0029に似た感じかと思いきや少し違いました。 辞書順に並べるやり方は見ての通りで、ページ数の昇順についてはバブルソートですね。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int sen=0,num,page[1000][100]={},n</bits/stdc++.h>…

AOJ 0029 English Sentence

こんにちは川です。 今回はただ解きました。 特に解説はないです。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int sen=0,maxe[2]={0,0},lo=0; string str[1000],s; while(cin>>s){ lo=s.size(); if(maxe[0]</bits/stdc++.h>

AOJ 0118 Property Distribution

こんにちは川です。 今回は深さで調べていきました。 調べたところは文字0でつぶし領地の数をカウントアップさせるやり方です。 ソースコード #include<bits/stdc++.h>using namespace std;char str[100][101];int movex[4]={1,0,-1,0},movey[4]={0,1,0,-1},h,w;void serch</bits/stdc++.h>…

AOJ 0170 Lunch

こんにちは川です。 今回は愚直に解いたのでこれといった解説は特にないです。 ソースコード #include<bits/stdc++.h>using namespace std;int me[10],rigidity[10],n;char str[10][21];void serch(int num,int now,int sum,int point,int co){ if(num==0)return; else if(n</bits/stdc++.h>…

AOJ 0169 Blackjack

こんにちは川です。 今回は1が出た数をカウントし1と11を入れた場合を深さ優先探索で調べていきました。 ソースコード #include<bits/stdc++.h>using namespace std;int power(int n){ int num=1; for(int i=0;i<n;i++)num*=10; return num;}int serch(int sum,int n){ if(sum>21)return 0; else if(n==0)return sum; else return max(serc</n;i++)num*=10;></bits/stdc++.h>…

AOJ 0168 Kannondou

こんにちは川です。 今回はdpですね。 n段目の通り数=n-3段目の通り数+n-2段目の通り数+n-1段目の通り数 みたいな感じですね。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int n; int dp[31]={}; dp[0]=1;dp[1]=1;dp[2]=2; for(int i=3;i<31;i+</bits/stdc++.h>…

AOJ 0149 Eye Test

こんにちは川です。 この問題はもっとコード長を短くしていたのですが、計算の精度が悪すぎてきれてしまったため、 見るに耐えないコードになってしまいました。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int leye[4]={0,0,0,0},reye[4]={0</bits/stdc++.h>…

AOJ 0151 Grid

こんにちは川です。 今回は普通に解いていけるみたいだったので普通に解いたのですが・・・ コード長が長くなりすぎですね。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ char ma[255][255]; int n; while(cin>>n,n){ int pillar[255]={},ans=0; </bits/stdc++.h>…

AOJ 0150 Twin Prime

こんにちは川です。 エラトステネスの篩で素数を決定してから探していますね。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ bool prime[10001]; memset(prime,0,sizeof(prime)); for(int i=2;i<sqrt(10001);i++){ if(!prime[i])for(int j=i*2;j<10005;j+=i)prime[j]=1; } int n; while(cin>>n,n){ for(int i=n;i>2;i--){ if(!prime[i]&&!pri…</sqrt(10001);i++){></bits/stdc++.h>

AOJ 0148 Candy and Class Flag

こんにちは川です。 今回は余りを表示させただけです。 ソースコード #include<bits/stdc++.h> using namespace std; int main() { int n; cout.fill('0'); while(cin>>n){ if(n%39==0)cout<<"3C39"<</bits/stdc++.h>

AOJ 0197 Greatest Common Divisor: Euclidean Algorithm

こんにちは川です。 今回は問題に書いてあるとおりにユークリッドの互除法をしただけです。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int x,y,num; while(cin>>x>>y,x&&y){ if(x</bits/stdc++.h>

AOJ 0030 Sum of Integers

こんにちは川です。 日付が変わってしまった。 今回は深さ優先探索をしただけです。 自分的にはコード長を抑えることができたので満足です。 ソースコード #include<bits/stdc++.h>using namespace std;int serch(int i,int j,int n){ if(!n&&!j)return 1; else if(i==10||!</bits/stdc++.h>…

AOJ 0042 A Thief

こんにちは川です。 疲れましたね。 はじめてDPというものをしてみました。 ナップサック問題というらしいです。 蟻本を参考にしながら解きました。 自分の説明よりも蟻本を見てやったほうが早いと思うので蟻本を見てください。 pow関数にむかついたので自分…

春休みの最初の1週間AOJに向き合った結果

こんにちは川です。 今回はやったことの可視化ということで、記事を書いています。 あ~眠い。とりあえず書いてみます。 3/7(月) 0095 0184 0195 3こ 3/8(火) 0033 0044 0050 0051 0052 0060 0093 7こ 3/9(水) 0053 0061 2こ 3/10(木) 0066 0083 2こ 3/11…

AOJ 0185 Goldbach's Conjecture II

こんにちは川です。 最近volume0をやっていてだんだん解ける問題が少なくなってきたので新たに勉強したいなと思っています。 今回は0056のやつの入力される値がでかくなったやつですね。 これに対抗するためにprimeをint型からbool型に変えただけですね。 00…

AOJ 0082 Flying Jenny

こんにちは川です。 今回は配列に馬車や車、馬の順番をぶち込んで、それをずらしていって残りが少なかった場合を表示させてます。 今回はなぜかソースコードのコード長を減らしたい衝動に駆られていた。 しかし、そこまで減らなかったし、載せれるレベルには…

AOJ 0196 Baseball Championship

こんにちは川です。 息抜き?です。 今回はただ単純にやっただけです。 急な仕事が入ってきましたが、仕事は無視して計画を進めていきます。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int n,point,win[10],low[10]; char str[10]; while(cin>></bits/stdc++.h>…

AOJ 0056 Goldbach's Conjecture

こんにちは川です。 今回は愚直にやると時間が足りないので aとn-aを足してnになるものをカウントしています。 あ~つかれた。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int prime[50001]; for(int i=2;i<50001;i++)prime[i]=0; for(int i=2;i</bits/stdc++.h>…

AOJ 0055 Sequence

こんにちは川です。 今回は問題文に書かれてあるように各項ごとに計算しました。 精度については小数点以下が6桁より多くなるように調整しています。 setprecisionについてのリンクを下に貼ってます。 http://ogawa.s18.xrea.com/tdiary/20120220p01.html …

AOJ 0054 Sum of Nth decimal places

こんにちは川です。 今回の問題は普通に解こうとしたら精度やオーバーフローなどの問題が発生します。 なので10倍ずつしていろいろやっています。 勉強しないとな~ ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int a,b,n; while(cin>>a>>b>>n)</bits/stdc++.h>…

AOJ 0039 Roman Figure

こんにちは川です。 この問題は問題にあるとおりにコードを書けばいけました。 見掛け倒し的な問題? ソースコード #include<bits/stdc++.h>using namespace std;int serch(char str){ if(str=='I')return 1; else if(str=='V')return 5; else if(str=='X')return 10; else </bits/stdc++.h>…

AOJ 0101 Aizu PR

こんにちは川です。 気分転換にvolume1を解いています。 今回もgetlineで文章を入力しているんですが、変数nを入力する際、8行目の記述がないとfor文の中のgetlineがの改行文字を受け取ってしまいます。つまり、「3\n」と打つと7行目で無視される「\n」の…

AOJ 0066 Tic Tac Toe

こんにちは川です。 今回は順序立てて解くといけました。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int co=0,flag=0; string str; while(cin>>str){ for(int i=0;i<3&&flag!=1;i++){ for(int j=0;j<3;j++){ if(str[i*3+j]==str[i*3])co++; } i</bits/stdc++.h>…

AOJ 0083 Era Name Transformation

こんにちは川です。 この問題は凡ミスしなければいけます。 ifぶんおおいな~ ソースコード #include<bits/stdc++.h> using namespace std; int main() { int year,month,date; while(cin>>year>>month>>date){ if(year<1868||year==1868&&month<9||year==1868&&month==9&&d</bits/stdc++.h>…

AOJ 0061 Rank Checker

こんにちは川です。 今回は文字処理が少しできればさほど難しくないと思われます。 同じ順位の処理にはキューを使いました。 やはりコード量を減らしたいですね。 ソースコード #include<bits/stdc++.h>using namespace std;int main(){ int team[101],num=0,point,lank[101</bits/stdc++.h>…

AOJ 0053 Sum of Prime Numbers

こんにちは川です。 今回も素数が出てきています。エラトステネスの篩がわからない方は下のリンクから学習してください。 kawakawa.hatenablog.com 制約が10000と大きめなので、これより少し大きく要素数をとってごり押しました。 表ができればあとは楽です…