包子凑数

类似完全背包求方案数,再加上点数论知识,裴蜀定理。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
const int N=300000;
bool  f[N];
int a[120];
signed main()
{
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n,n0=0,n1=0; cin>>n;
	f[0]=1;
	int g;
	for(int i=1;i<=n;i++) cin>>a[i];
	g=a[1];
	for(int i=1;i<=n;i++)
	{
		g=__gcd(g,a[i]);
		for(int j=a[i];j<N;j++)
		f[j]|=f[j-a[i]];
	}
	int flag=0,cnt=0;
	for(int i=1;i<N;i++)
	if(!f[i]) 
	cnt++;
	if(g!=1){
		cout<<"INF";
		return 0;
	}
     cout<<cnt;
	return 0;
}
相关推荐
爱装代码的小瓶子8 小时前
【c++进阶】在c++11之前的编译器的努力
开发语言·c++·vscode·visualstudio·编辑器·vim
蜗牛love天空8 小时前
vs的运行库区别,静态连接mt和动态链接md运行库
c++
超级大福宝8 小时前
C++ 中 unordered_map 的 at() 和 []
数据结构·c++
蜗牛love天空8 小时前
智能指针的值传递和引用传递
开发语言·c++
仰泳的熊猫8 小时前
1037 Magic Coupon
数据结构·c++·算法·pat考试
爱装代码的小瓶子8 小时前
【cpp进阶】c++11的新特性(概述版)
开发语言·c++
程序喵大人8 小时前
SQLITE问题整理
开发语言·数据库·c++·sqlite
天赐学c语言8 小时前
12.17 - 合并两个有序数组 && include<> 和 include““ 的区别
c++·算法·leecode
珹洺8 小时前
C++从入门到实战(二十二)stack的介绍和使用
开发语言·c++