アルゴ式(beta版)の「全探索 (beta)33/33」練習問題からの出典です。
algo-method.com
アルゴ式とは...
>・プログラミングや情報科学をコツコツ学べる「教科書」
>・学んだ内容をゲーム感覚で大量に実践できる「練習問題」
>の2つで構成される、Web上で完結した学習コンテンツです。
C++による「全探索 (beta)33/33」練習問題の解答例
僕が作成、提出したコードは、以下のとおりです。
・配列の全探索
・配列の全探索 1
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 1 https://algo-method.com/tasks/209 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ bool tf=false; int n,v; cin>>n>>v; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; if(a[i]==v){ tf=true; } } if(tf==true){ cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } return 0; }
・配列の全探索 2
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 2 https://algo-method.com/tasks/210 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int ans=0; int n,v; cin>>n>>v; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; if(a[i]==v){ ans++; } } cout<<ans<<endl; return 0; }
・配列の全探索 3
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 3 https://algo-method.com/tasks/212 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int ans=0; int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; if(a[i]>0){ ans++; } } cout<<ans<<endl; return 0; }
・配列の全探索 4
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 4 https://algo-method.com/tasks/216 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,v; cin>>n>>v; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=n-1;i>=0;i--){ if(a[i]==v){ cout<<i<<endl; return 0; } } cout<<-1<<endl; }
・配列の全探索 5
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 5 https://algo-method.com/tasks/215 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int ans=0; int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=1;i<n;i++){ if(a[i]>a[i-1]){ ans++; } } cout<<ans<<endl; return 0; }
・配列の全探索 6
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 6 https://algo-method.com/tasks/213 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int ans=-1000; int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; ans=max(ans,a[i]); } cout<<ans<<endl; return 0; }
・配列の全探索 7
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 7 https://algo-method.com/tasks/211 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int maximum=0; int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; maximum=max(maximum,a[i]); } for(int i=0;i<n;i++){ if(a[i]==maximum){ cout<<i<<endl; return 0; } } }
・配列の全探索 8
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 8 https://algo-method.com/tasks/214 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int ans=1000; int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; ans=min(ans,a[i]); } cout<<ans<<endl; return 0; }
・配列の全探索 9
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 9 https://algo-method.com/tasks/217 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ vector<int> v(9,0); int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; v[a[i]-1]++; } for(int i=0;i<9;i++){ cout<<v[i]<<endl; } return 0; }
・配列の全探索 10
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 配列の全探索 10 https://algo-method.com/tasks/219 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ vector<int> v(9,0); int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; v[a[i]-1]++; } int ans=-1; for(int i=0;i<9;i++){ ans=max(ans,v[i]); } for(int i=0;i<9;i++){ if(ans==v[i]){ cout<<i+1<<endl; return 0; } } }
・数字の全探索
・数字の全探索 1
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 数字の全探索 1 https://algo-method.com/tasks/220 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; int cnt=0; for(int i=1;i<=n;i++){ if(i%2!=0 && i%3!=0 && i%5!=0){ cnt++; } } cout<<cnt<<endl; return 0; }
・数字の全探索 2
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 数字の全探索 2 https://algo-method.com/tasks/221 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; int cnt=0; for(int i=1;i<=n;i++){ if(n%i==0){ cnt++; } } cout<<cnt<<endl; return 0; }
・数字の全探索 3
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 数字の全探索 3 https://algo-method.com/tasks/222 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; if(n==1){ cout<<"No"<<endl; return 0; } int cnt=0; for(int i=2;i<n;i++){ if(n%i==0){ cnt++; } } if(cnt==0){ cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } return 0; }
・数字の全探索 4
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 数字の全探索 4 https://algo-method.com/tasks/224 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int a,b; cin>>a>>b; cout<<gcd(a,b)<<endl; return 0; }
・数字の全探索 5
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 数字の全探索 5 https://algo-method.com/tasks/225 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; for(int i=1;i<=n;i++){ if(i%15==0){ cout<<"FizzBuzz"<<endl; }else if(i%3==0){ cout<<"Fizz"<<endl; }else if(i%5==0){ cout<<"Buzz"<<endl; }else{ cout<<i<<endl; } } return 0; }
・文字列の全探索
・文字列の全探索 1
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 文字列の全探索 1 https://algo-method.com/tasks/226 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s,c; cin>>s>>c; if(s.find(c)==string::npos){ cout<<"No"<<endl; }else{ cout<<"Yes"<<endl; } return 0; }
・文字列の全探索 2
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 文字列の全探索 2 https://algo-method.com/tasks/227 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s; cin>>s; string t=s; reverse(t.begin(),t.end()); if(s==t){ cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } return 0; }
・文字列の全探索 3
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 文字列の全探索 3 https://algo-method.com/tasks/228 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s; cin>>s; int cnt=0; int ss=s.size()-0; for(int i=0;i<ss-1;i++){ if(s[i]==s[i+1]){ cnt++; } } cout<<cnt<<endl; return 0; }
・文字列の全探索 4
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 文字列の全探索 4 https://algo-method.com/tasks/230 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; string s,t; cin>>n>>s>>t; int cnt=0; for(int i=0;i<n;i++){ if(s[i]!=t[i]){ cnt++; } } cout<<cnt<<endl; return 0; }
・文字列の全探索 5
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 文字列の全探索 5 https://algo-method.com/tasks/229 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s,t; cin>>s>>t; if(s.find(t)==string::npos){ cout<<"No"<<endl; }else{ cout<<"Yes"<<endl; } return 0; }
・2重ループの全探索
・2重ループの全探索 1
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 2重ループの全探索 1 https://algo-method.com/tasks/234 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; bool primeTF(int n){ if(n==1){ return false; } int cnt=0; for(int i=2;i<n;i++){ if(n%i==0){ cnt++; } } if(cnt==0){ return true; }else{ return false; } } int main(void){ int n; cin>>n; vector<int> a(n); int cnt=0; for(int i=0;i<n;i++){ cin>>a[i]; if(primeTF(a[i])){ cnt++; } } cout<<cnt<<endl; return 0; }
・2重ループの全探索 2
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 2重ループの全探索 2 https://algo-method.com/tasks/235 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,k; cin>>n>>k; int ans=0; for(int i=1;i<=n;i++){ int cnt=0; for(int j=1;j<=i;j++){ if(i%j==0){ cnt++; } } if(cnt==k){ ans++; } } cout<<ans<<endl; return 0; }
・2重ループの全探索 3
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 2重ループの全探索 3 https://algo-method.com/tasks/238 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int l,r; cin>>l>>r; int cnt=0; for(int i=l;i<=r;i++){ string s=to_string(i); string t=s; reverse(t.begin(),t.end()); if(s==t){ cnt++; } } cout<<cnt<<endl; return 0; }
・2重ループの全探索 4
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 2重ループの全探索 4 https://algo-method.com/tasks/236 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ string s; cin>>s; vector<char> v; for(int i=0;i<s.size();i++){ v.push_back(s[i]); } sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); cout<<v.size()<<endl; return 0; }
・2重ループの全探索 5
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 2重ループの全探索 5 https://algo-method.com/tasks/237 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; bool tf(string s){ string t=s; reverse(t.begin(),t.end()); if(s==t){ return true; }else{ return false; } } int main(void){ int n; cin>>n; int cnt=0; vector<string> s(n); for(int i=0;i<n;i++){ cin>>s[i]; if(tf(s[i])){ cnt++; } } cout<<cnt<<endl; return 0; }
・複数の配列の全探索
・複数の配列の全探索 1
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 複数の配列の全探索 1 https://algo-method.com/tasks/231 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,m; cin>>n>>m; vector<int> a(n); vector<int> b(m); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<m;i++){ cin>>b[i]; } int cnt=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i]>b[j]){ cnt++; } } } cout<<cnt<<endl; return 0; }
・複数の配列の全探索 2
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 複数の配列の全探索 2 https://algo-method.com/tasks/232 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,m,k; cin>>n>>m>>k; vector<int> a(n); vector<int> b(m); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<m;i++){ cin>>b[i]; } int cnt=0; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(a[i]+b[j]==k){ cnt++; } } } cout<<cnt<<endl; return 0; }
・複数の配列の全探索 3
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 複数の配列の全探索 3 https://algo-method.com/tasks/233 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int x,y,z; cin>>x>>y>>z; vector<int> a(x),b(y),c(z); for(int i=0;i<x;i++){ cin>>a[i]; } for(int i=0;i<y;i++){ cin>>b[i]; } for(int i=0;i<z;i++){ cin>>c[i]; } int cnt=0; for(int i=0;i<x;i++){ for(int j=0;j<y;j++){ for(int k=0;k<z;k++){ if(a[i]+b[j]==c[k]){ cnt++; } } } } cout<<cnt<<endl; return 0; }
・ペアの全探索
・ペアの全探索 1
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 ペアの全探索 1 https://algo-method.com/tasks/244 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n,k; cin>>n>>k; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; } int cnt=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(a[i]+a[j]<=k){ cnt++; } } } cout<<cnt<<endl; return 0; }
・ペアの全探索 2
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 ペアの全探索 2 https://algo-method.com/tasks/245 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; bool tf(int a,int b){ if(a==b){ return false; }else{ string s=to_string(a); string t=to_string(b); reverse(s.begin(),s.end()); reverse(t.begin(),t.end()); if(s[0]==t[0]){ return true; }else{ return false; } } } int main(void){ int l,r; cin>>l>>r; int cnt=0; for(int i=l;i<=r;i++){ for(int j=i+1;j<=r;j++){ if(tf(i,j)){ cnt++; } } } cout<<cnt<<endl; return 0; }
・ペアの全探索 3
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 ペアの全探索 3 https://algo-method.com/tasks/259 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; vector<int> a(n); for(int i=0;i<n;i++){ cin>>a[i]; } int cnt=0; for(int x=0;x<n;x++){ for(int y=x+1;y<n;y++){ for(int z=y+1;z<n;z++){ int m=max(a[x],max(a[y],a[z])); if(m==a[y]){ cnt++; } } } } cout<<cnt<<endl; return 0; }
・ペアの全探索 4
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 ペアの全探索 4 https://algo-method.com/tasks/260 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; cin>>n; vector<string> s(n),t(n); for(int i=0;i<n;i++){ cin>>s[i]; t[i]=s[i]; } sort(t.begin(),t.end()); t.erase(unique(t.begin(),t.end()),t.end()); int ss=s.size()-0; int ts=t.size()-0; if(ss!=ts){ cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } return 0; }
・ペアの全探索 5
algo-method.com
/* C++による「全探索 (beta)33/33」練習問題の解答例 ペアの全探索 5 https://algo-method.com/tasks/261 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int n; string s; cin>>n>>s; int cnt=0; for(int x=0;x<n;x++){ for(int y=x+1;y<n;y++){ if(s[x]==s[y]){ cnt++; } } } cout<<cnt<<endl; return 0; }
設問の出典は、情報科学をコツコツ積み立てて学習できるサービス「アルゴ式(beta版)」です。
algo-method.com