蓝桥杯每日一题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;
}
相关推荐
后台模板学习6 小时前
2026最新面试真题:到达用英语怎么说背后的逻辑与源码剖析
面试·职场和发展·php
CoderYanger7 小时前
前端基础——JavaScript(WebAPI)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
敲代码的嘎仔9 小时前
自己设计了一个兑换码算法:自增ID + Base32转码 + 按位加权签名 + 异或混淆,面试被追问细节时终于不用慌了
java·数据库·mysql·算法·微服务·面试·职场和发展
aqiu11111112 小时前
【数位 DP / 记忆化搜索】蓝桥云课 - 光轨区的 AI 数 题解
c++·算法·蓝桥杯·数位dp
程序员小远14 小时前
自动化测试用例编写实例详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
麻辣布丁16 小时前
java基础篇面试模拟
面试·职场和发展
leo_messi9417 小时前
面试知识点梳理及相关面试题(十六)-- 分布式设计
分布式·面试·职场和发展
辰烨chenye1 天前
LeetCode Hot 100 题解 · 普通数组篇
算法·leetcode·职场和发展
hqyjzsb1 天前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
Interview Aid1121 天前
Walmart Global Tech SDE 三轮面经|基础、并发、压力面
面试·职场和发展