2015年蓝桥杯省赛题解
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2015年蓝桥杯省赛题解相关的知识,希望对你有一定的参考价值。
题单地址:http://oj.ecustacm.cn/viewnews.php?id=1021
持续更新
目录
奇妙的数字【水】
#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;
移动距离【水】
求坐标,算曼哈顿距离即可。
#include<bits/stdc++.h>
using namespace std;
int w,m,n;
int getx(int n)
int x=n/w;
if(n%w) x++;
return x;
int gety(int n,int x)
int y;
if(x%2)
int sum=n-(x-1)*w;
y=sum%(w+1);
else
int sum=n-(x-1)*w;
y=w-(sum%(w+1))+1;
return y;
int main(void)
while(cin>>w>>m>>n)
int x1=getx(m),x2=getx(n);
int y1=gety(m,x1),y2=gety(n,x2);
cout<<abs(x1-x2)+abs(y1-y2)<<endl;
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;
牌型种数【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;
以上是关于2015年蓝桥杯省赛题解的主要内容,如果未能解决你的问题,请参考以下文章