蓝桥杯每日一题2023.11.9

包子凑数 - 蓝桥云课 (lanqiao.cn)

题目描述

题目分析

对于此题是一个简单DP的翻版问题,若能凑出当前的包子数,则凑出之前一定为dpi - a\[j],若表示出的dpi不是0则说明是一定存在数可以被凑出的,由题意:若凑不出的数字超过10000这个上界,我们就可以判断出有无穷个

最大不能表示出来的数必定有个上界,因为两个数a,b(当gcd=1时),最大不能表示出来的数是(a - 1)(b - 1) - 1,题目中的N为100,99和98是100内最大的互质的数,故这个上界选择10000

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e7;
int a[N], dp[N];
int main()
{
	int n, ans = 0;
	cin >> n;
	for(int i = 1; i <= n; i ++)
	{
		cin >> a[i];
		dp[a[i]] ++;
	}
	for(int i = 1; i <= N; i ++)
	{
		for(int j = 1; j <= n; j ++)
		{
			if(i - a[j] < 0)continue;
			dp[i] = dp[i - a[j]] + dp[i];
			if(dp[i] != 0)break;//这个数可以被凑出 
		}
		if(dp[i] == 0)ans ++;
	}
	if(ans  > 10000)cout << "INF";
	else cout << ans;
	return 0;
}
相关推荐
十二3 天前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
Pniubi3 天前
力扣560.和为k的子数组
算法·leetcode·职场和发展
Pniubi3 天前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
MUSHANGXS4 天前
大模型时代的新蓝海-基于OS底层的AI-Agent应用
人工智能·职场和发展·交互
Yuzhiyuxia4 天前
【AI Agent面试系列】上下文管理1
人工智能·面试·职场和发展
青少儿编程课堂4 天前
蓝桥杯青少组省考(11/9报名截止·11/22开考)+电子学会图形化考级+信息素养大赛:校园极速跑酷闯关解析
蓝桥杯·scratch·图形化编程·信息素养大赛·电子学会考级
CoderYanger5 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)
java·数据库·spring·面试·职场和发展·java-ee·mybatis
lsc_blog5 天前
年底还在招的岗位,先确认缺口和到岗要求
git·缓存·ci/cd·职场和发展·github
Pniubi6 天前
力扣3无重复字符的最长字串(滑动窗口)
算法·leetcode·职场和发展