第十二届蓝桥杯c++b组个人题解

又是一年一度的蓝桥杯了,本届蓝桥杯的题型分布有所改变,如果没记错的话往常都是3-5道填空题,今年一反往常只有2道填空题了,相对于之前的“暴力破解杯”和“dp杯”,现在的蓝桥杯阅读难度有所降低,数学知识和贪心的题目也多了起来。
第一题:试题A: 九进制转十进制
在这里插入图片描述

题解:最近几年的打卡题都偏向于计算机基础知识了,这题如果是科班出身的话在计算机组成原理的课程中应该有学习到进制转换的知识,93*2+92*0+90*2=1478

#include <bits/stdc++.h>
using namespace std;
int main()
{
   	
	cout<<9*9*9*2+9*2+1*2;
	return 0;
}

运行结果
在这里插入图片描述
第二题:试题B: 顺子日期
在这里插入图片描述
题解:题目好像有歧义,题目中说20221023不算顺子,但是里面又含有210,那么到底是逆序不算顺子还是含0不算顺子呢。由题解中的解释:顺子就是连续的三个数字,所以递增递减都应该算作顺子,所以2022年01月20日到2022年01月29日(不确定)、2022年03月21日,2022年02月10日(不确定),2022年10月12日(不确定)2022年11月23,2022年12月10日(不确定),2022年12月30日,2022年12月31日,一共4种?。
第三题:试题C: 刷题统计
在这里插入图片描述

题解:一看数据规模n<=1018,这在往常的蓝桥杯里比较少见,第三题就开始卡时间了,直接模拟的话只能拿一半的分,所以可以采用数学方法来解,先算一周能做多少工作,在计算总共需求多少周,然后在讨论剩下的部分

#include <bits/stdc++.h>
using namespace std;
int main()
{
   	
	//注意题目中的数据规模,明显数据范围是大于int的最大值
	//如果这里使用int的话,就算想到了用数学方法解也会因为接收不到n导致错误
	long long a,b,n;
	cin>>a>>b>>n;
	int totalday;
	//先计算一周能做多少题目
	int weekjob=a*5+b*2;
	//一共需要多少周
	int week=n/weekjob;
	//剩余的题目
	double dayjob=n%weekjob;
	if(dayjob<=5*a){
   
		totalday=week*7+ceil(dayjob/a);//向上取整
	}else{
   
		//如果剩余的工作周一到周五做不完则周六周日做
		totalday=week*7+5+ceil((dayjob-5*a)/b);
	}
	cout<<totalday;
	return 0;
}

第四题:试题D: 修剪灌木
在这里插入图片描述
题解:老规矩先看数据规模n<=10000,所以来说正常用模拟的方法不会超时,除了模拟以外还可以找规律贪心很容易可以知道树的最大高度=max((i-1)*2,(n-i)*2);然后树的最大高度是对称的。
解法一(贪心):

#include <bits/stdc++.h>
using namespace std;
int main()
{
   	
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) cout<<max((i-1)*2,(n-i)*2)<<endl;
}

解法二(模拟):

#include <bits/stdc++.h>
using namespace std;


void all_tree_grow_up(vector<int> &trees,vector<int> &res,int k){
   
	for(int i=1;i<trees.size();i++){
   
		if(i==k)
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bomqiu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值