2015年蓝桥杯省赛题解
生活随笔
收集整理的這篇文章主要介紹了
2015年蓝桥杯省赛题解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題單地址:http://oj.ecustacm.cn/viewnews.php?id=1021
持續(xù)更新
目錄
- 奇妙的數(shù)字【水】
- 加法變乘法【水】
- 移動距離【水】
- 打印大X【水】
- 牌型種數(shù)【dfs】
- 飲料換購【水】
- 三羊獻瑞【水】
- 星系炸彈【日期模擬】
- 手鏈樣式【枚舉】
奇妙的數(shù)字【水】
#include<bits/stdc++.h> using namespace std; typedef long long int LL; bool check(int x) {LL sum1=x*x,sum2=x*x*x;int cnt=0;set<int>st;while(sum1) st.insert(sum1%10),sum1/=10,cnt++;while(sum2) st.insert(sum2%10),sum2/=10,cnt++;if(cnt==10&&st.size()==10) return true;return false; } int main(void) {for(int i=1;i<=100000;i++) if(check(i)) {cout<<i;return 0;}return 0; }加法變乘法【水】
#include<bits/stdc++.h> using namespace std; vector<pair<int,int>>ve; bool check(int l,int r) {int sum=0;for(int i=1;i<=49;i++) {if(i==l||i==l+1) continue;if(i==r||i==r+1) continue;sum+=i;}sum+=l*(l+1)+r*(r+1);return sum==2015; } int main(void) {for(int i=1;i<=47;i++)//枚舉乘號的位置for(int j=i+2;j<=48;j++)if(check(i,j)) ve.push_back({i,j});//for(int i=0;i<ve.size();i++) cout<<ve[i].first<<" "<<ve[i].second<<endl;cout<<16;return 0; }移動距離【水】
求坐標,算曼哈頓距離即可。
打印大X【水】
#include<bits/stdc++.h> using namespace std; const int N=1010; int n,m; int main(void) {while(cin>>m>>n){int st[N][N]={0};for(int i=1;i<=n;i++){for(int j=i,k=0;k<m;k++,j++) st[i][j]=1;for(int j=n+m-1-i+1,k=0;k<m;k++,j--) st[i][j]=1;}for(int i=1;i<=n;i++){for(int j=1;j<=n+m-1;j++) {if(st[i][j]) cout<<'*';else cout<<'.';}cout<<endl;}}return 0; }牌型種數(shù)【dfs】
#include<bits/stdc++.h> using namespace std; int cnt=0; void dfs(int index,int u) {if(u>13) return;if(index==13){if(u==13) cnt++;return;}for(int i=0;i<=4;i++) dfs(index+1,u+i); } int main(void) {dfs(0,0);cout<<cnt<<endl;return 0; }飲料換購【水】
#include<bits/stdc++.h> using namespace std; int n,sum; int main(void) {while(cin>>n){sum=n;while(n>=3){sum+=n/3;n=n/3+n%3;}cout<<sum<<endl;}return 0; }三羊獻瑞【水】
#include<bits/stdc++.h> using namespace std; int a[10]={0,1,2,3,4,5,6,7,8,9}; int main(void) {do{int sum1=a[0]*1000+a[1]*100+a[2]*10+a[3];int sum2=a[4]*1000+a[5]*100+a[6]*10+a[1];int sum3=a[4]*10000+a[5]*1000+a[2]*100+a[1]*10+a[7];if(sum1+sum2==sum3&&a[4]){cout<<a[4]<<a[5]<<a[6]<<a[1]<<endl;break;}}while(next_permutation(a,a+10));return 0; }星系炸彈【日期模擬】
#include<bits/stdc++.h> using namespace std; int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; bool check(int x) {if((x%400==0)||(x%4==0&&x%100!=0)) return true;return false; } int y,m,d,x; int main(void) {while(cin>>y>>m>>d>>x){while(x--){if(check(y)) month[2]=29;d++;if(d>month[m]) m++,d=1;if(m>=13) y++,m=1;month[2]=28;}printf("%d-%02d-%02d\n",y,m,d);}return 0; }手鏈樣式【枚舉】
#include<bits/stdc++.h> using namespace std; string s="aaabbbbccccc"; map<string,int>mp; int cnt=0; int main(void) {do{if(mp[s]) continue;string temp=s;for(int i=0;i<12;i++){for(int j=0;j<12;j++) temp[(j+i)%12]=s[j];//轉(zhuǎn)動mp[temp]++;reverse(temp.begin(),temp.end());//翻轉(zhuǎn)mp[temp]++;}cnt++;}while(next_permutation(s.begin(),s.end()));cout<<cnt;return 0; }總結(jié)
以上是生活随笔為你收集整理的2015年蓝桥杯省赛题解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces Beta Roun
- 下一篇: Acwing第 41 场周赛【完结】