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年蓝桥杯省赛题解的主要内容,如果未能解决你的问题,请参考以下文章

精选蓝桥杯省赛基础题解2015-2022

2016年蓝桥杯省赛题解

2023年14界蓝桥杯省赛题解

2022年蓝桥杯省赛真题解析(C++B组)

蓝桥杯省赛C++组别大学B组历年题解

蓝桥杯省赛C++组别大学B组历年题解