第十三届蓝桥杯c++b组国赛决赛

第一次参加蓝桥杯进国赛了,今天更新一下参加国赛的心得和写出的题吧~

试题 A: 2022

思路:这题用的是三维背包,定义f[i][j][v]表示从前i个中选j个和为v的方案种数,那么可以得到状态转移方程,注意f数组开longlong,不然会爆int

选i: f[i][j][v] = f[i - 1][j - 1][v - i]

不选i:  f[i][j][v] += f[i - 1][j][v]

答案:379187662194355221

代码如下:

#include <iostream>

using namespace std;

const int N = 2030;

typedef long long LL;

int n, m, k;
LL f[N][11][N];

int main()
{
	cin >> n >> m >> k;
	
	f[0][0][0] = 1;
	
	for(int i = 1; i <= n; i ++ )
	for(int j = 0; j <= m; j ++ )
	for(int v = 0; v <= k; v ++ )
	{
		//选i
		if(v - i >= 0 && j - 1 >= 0)
		f[i][j][v] = f[i - 1][j - 1][v - i]; 
		//不选i
		f[i][j][v] += f[i - 1][j][v];  
	}
	
	cout << f[n][m][k] << endl;
	return 0;
}

 

 试题 B: 钟表

 

思路:这题考试的时候一开始没看懂(不经常看这种表),白给...

答案:4 48 0

代码如下:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    for(double s = 0; s <= 6; s ++ )
    for(double f = 0; f < 60; f ++ )
    for(double m = 0; m < 60; m ++)
	{
    	double a = s / 12 + (f + m * 60 ) / (60 * 12);  				
        double b = f / 60 + m / (60 * 60);       					
        double c = m / 60;										          
        double x = fabs(a - b) > 0.5 ? 1 - fabs(a - b) : fabs(a - b);   
        double y = fabs(b - c) > 0.5 ? 1 - fabs(b - c) : fabs(b - c);   
        if(fabs(x - 2 * y) < 1e-6)
		cout << s << " " << f << " " << m << endl;
        
    }
    return 0;
}

<
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第14届蓝桥杯青少国赛C题要求编写一个程序,输入一段英文文字,统计其中每个字母出现的次数,并按照字母表顺序输出。 首先,我们需要读入一段英文文字,可以使用输入函数进行输入。然后,我们定义一个26个大小的数,用来存储每个字母的出现次数。接下来,我们遍历输入的每个字符,并判断是否为字母。 如果为字母,则根据字母的ASCII码,减去ASCII码中字母'A'的值,得到对应的下标,将该字母的出现次数加一。最后,我们按照字母的顺序进行输出。可以使用循环遍历整个数,如果某个字母的出现次数不为0,则输出该字母及其出现次数。 具体代码实现如下: ```python # 定义一个26个大小的数 count = [0] * 26 # 输入一段英文文字 sentence = input("请输入一段英文文字:") # 统计每个字母出现的次数 for ch in sentence: # 判断是否为字母 if ch.isalpha(): # 统计字母出现次数 index = ord(ch.lower()) - ord('a') count[index] += 1 # 按照字母表顺序输出结果 for i in range(26): # 判断某个字母的出现次数是否不为0 if count[i] != 0: # 输出字母及其出现次数 print(chr(ord('a') + i) + ":" + str(count[i]) + "次") ``` 通过以上代码,我们可以实现输入一段英文文字,然后统计其中每个字母出现的次数,并按照字母表顺序输出。这样我们就完成了第14届蓝桥杯青少国赛C题的解答。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一万次悲伤_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值