第十三届蓝桥杯c++b组2022年国赛决赛题解

打印 上一主题 下一主题

主题 574|帖子 574|积分 1726

题目pdf下载十三届蓝桥杯c++b组2022国赛题目pdf下载
G题没有写,J题是暴力的,其他好像都写出来,但是估计还是有错的。
目录
正文:
试题 A: 2022
试题 B: 钟表
试题 C: 卡牌
试题 D: 最大数字
试题 E: 出差
试题 F: 费用报销
试题 G: 故障
试题 H: 机房
试题 I: 齿轮
试题 J: 搬砖
结尾:


正文:

试题 A: 2022


题意: 2022分为不同十个不同的正整数的情况数。
思路:动态规划,我的答案是:379187662194355221
        以为挺简单的,但是dfs写完连100都跑不出来,这题难度不简单,估计卡了不少人时间
后面暴力出了答案,从55开始有答案(因为最小的十个不同的正整数是:1,2,3,4...10,和是55),根据前10个数很像哈代-拉马努金拆分数列,然后求出来和后面的不一样,而且会炸long long,所以这个数列应该是错的。



动态规划思路:
       解释在下面动态规划代码的注释,大致就是dp[2022][10]=dp[1][9]+dp[2][9]+dp[3][9]....+dp[2021][9]的动态规划,用倒叙去实现每个整数只用一次(类似01背包)。
暴力代码:
[code]#include#include#include#includeusing namespace std;int a=55;int ans=0;void dfs(int d,int sum,int pre){        //d是选的数量,sum是选的和,pre是上次选的点    if(d==10){        if(sum==a)        ans++;        return;    }    for(int i=pre+1;i
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表