2019第十届蓝桥杯国赛c++B组真题

 

正确答案还没出来,有写代码的部分仅属于自己的见解。持续更新中....

A-题目描述:

请找到两个正整数X和Y满足下列条件:
1、2019<X<Y
2、2019^2、X^2、Y^2构成等差数列
满足条件的X和Y可能有多种情况,请给出X+Y的值,并且令X+Y尽可能的小。

思路:直接暴力,sqrt函数会丢失精度,把找到的值再平方一下看看是否构成等差数列,找到的第一对 x,y值为即为答案。

#include<iostream>
#include<cmath>
using namespace std; 
int main()
{

	for(long long x = 2020;; x ++){
		long long y =sqrt(2*x*x - 2019*2019);  
		if(x * x - 2019 * 2019 == y * y - x * x){
			cout<<x<<" + "<<y<<" = "<<x + y <<endl;
			break;
		}
	}
	return 0;
}

答案:7020

B-题目描述:

2019可以被分解成若干个两两不同的素数,请问不同的分解方案有多少种?
注意:分解方案不考虑顺序,如2+2017=2019和2017+2=2019属于同一种方案。

C-题目描述:

锯7X7的木头,然后拼成直角,问有多少种锯法。

D-题目描述:

有一个7X7的方格。方格左上角顶点坐标为(0,0),右下角坐标为(7,7)。
求满足下列条件的路径条数:
1、起点和终点都是(0,0)
2、路径不自交
3、路径长度不大于12
4、对于每一个顶点,有上下左右四个方向可以走,但是不能越界。
 

#include<iostream>
using namespace std;
int dx[4] = {-1,0,1,0},dy[4] = {0,1,0,-1};
int maze[7][7],vis[7][7];
int ans = 0;
void dfs(int x,int y,int step){
	if(step > 12) return;
	if(step > 2 && !x && !y){
		ans ++;
		return;
	}
	for(int i = 0;i < 4;i ++){
		int a = x + dx[i],b = y + dy[i];
		if(a >= 0 && a < 7 && b >= 0 && b < 7 && !vis[a][b]){
			vis[a][b] = 1;
			dfs(a,b,step+1);
			vis[a][b] = 0;
		}
	}
}
int main()
{
	dfs(0,0,0);
	cout<<ans<<endl;
	return 0;
}

 

答案: 206

E-题目描述:

约数的数量恰好是100的最小正整数。

#include<iostream>
using namespace std;
int main()
{
	for(int i = 1;;i ++){
		int ans = 0;
		for(int j = i;j >= 1;j --){
			if(i % j == 0){
				ans ++;
			}
			if(ans == 100){
				cout<<i<<endl;
				return 0;
			}
		}
	}
	return 0;
}

 

答案:45360

 

F-题目描述:

 

题目给定两个字符串S和T,保证S的长度不小于T的长度,问至少修改S的多少个字符,可以令T成为S的子序列。

输入描述:
两行。
第一行是字符串S,第二行是字符串T。
保证S的长度不小于T的长度,S的长度范围在10~1000之间。

输出描述:
答案,一个非负整数。

输入样例:
XBBBBBAC
ACC

输出样例:
2
 

G-题目描述:

三色三圈的火柴游戏。

 

H-题目描述:

对于一个数列中的某个数,如果这个数比两侧的数都大比两侧的数都小,我们称这个数为这个数列的一个转折点。
如果一个数列有t个转折点,我们称这个数列为t+1调数列。
给定两个正整数n,k。求在1~n的全排列中,有多少个数列是k调数列。

 

 

I-题目描述:


有一条河,沿河的一侧生活着一个部落。这个一字型的部落有n个据点,从左至右依次编号1~n。
部落的人们有时会在某个据点建立建筑,每个建筑都有各自的价值。一开始,每个据点的都没有建筑,价值都是0。如果在已有建筑的据点建立新的建筑,那么新的建筑会代替旧的建筑(旧的建筑就此消失)。
有两种操作C和Q:
1、C x y,表示在据点x建立一个价值为y的建筑。
2、Q x y,询问在据点x~y之间(包括x,y)的建筑中,价值第八大的建筑的价值是多少。

输入描述:
第一行,两个正整数n和k,表示据点的数量和操作的数量。
接下的k行,每行一个操作。

输出描述:
对于所有的Q操作,输出相应的第八大建筑的价值。

输入样例:
10 14
C 1 5
C 2 4
C 3 7
C 4 6
C 5 5
C 6 1
C 7 8
Q 1 10
C 8 3
C 9 6
C 10 3
Q 1 9
C 6 10
Q 1 10

输出样例:
0
3
4
 

J-题目描述:

燃烧的权杖。

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值