蓝桥杯2020年第十一届C/C++B组(第一次)省赛习题题解

本文总结了2020年第十届C/C++B组蓝桥杯省赛真题中九个技术挑战,涉及跑步训练的能耗计算、纪念日天数、合并检测策略、REPEAT程序模拟、矩阵DP、整除序列、解码算法、走方格路径计数和整数拼接数学问题。每个问题的关键算法和核心思路都有详细解析。
摘要由CSDN通过智能技术生成

目录

第一题:跑步训练(模拟)

第二题:纪念日(模拟)

第三题:合并检测(数学)

第四题 REPEAT 程序(模拟)

第五题:矩阵(dp)

第六题:整除序列(模拟)

第七题:解码(模拟+string)

第八题:走方格(DFS+dp)

第九题:整数拼接(数学+幂)


题目来源:2020年第十届C/C++ B组第一场蓝桥杯省赛真题_戎码一生的博客-CSDN博客_蓝桥杯c++真题


第一题:跑步训练(模拟)

 核心思路:

由于答案要求的是秒数,所以需要将上述的单位转换为秒,那么就可以得到平均每秒的能量损耗;因为有剩下的能量,不足以支撑1分钟的跑步的情况,所以需要对此情况进行特判

#include<iostream>

using namespace std;

int main()
{
	int n = 10000;
	int run = 600 / 60;//每秒的消耗 
	int time = 0;
	while (n)
	{

		if (n - 600 < 0)//如果剩余的能量不支撑于1分钟run,则取整秒break
		{
			time = time * 60 + n / run;
			break;
		}
		n -= 600;
		n += 300;
		time += 2;
	}
	cout << time;
	return 0;
}

第二题:纪念日(模拟)

 核心思路:

因为要求的是天数,平年365天,闰年366天,枚举天数的同时,特判平年还是闰年即可

#include<iostream>

using namespace std;

int yearDay(int year)
{
	if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
	{
		return 366;
	}
	return 365;
}

int main()
{
	int time = 0;
	for (int i = 1922; i <= 2020; i++)
	{
		time += yearDay(i);
	}
	time -= 22;//23-22=1
	cout << time * 24 * 60 << endl;
	return 0;
}

第三题:合并检测(数学)

 核心思路:

假设总人数为100人,那么就有,对于k枚举 1~100 的范围内

(1)对于 总人数100%k==0 的情况:需要的总的试剂盒为:(100/i)+ i

········解释:(100/i):100个人中每次分为i个人 为 1组,那么总共就分为了 100/i组

········解释: +i是因为 它有1%的阳性率,(概率呈均匀分布)那么这100个人中就必定有人为阳性,那么就需要对,患阳性的那一组重新进行i个人的检测

(2)对于 总人数100%k!=0 的情况:需要的总的试剂盒为:(100/i)+ 1 + i

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值