博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
luogu5020 [NOIp2018]货币系统 (完全背包)
阅读量:5321 次
发布时间:2019-06-14

本文共 1260 字,大约阅读时间需要 4 分钟。

我那个新的货币系统,就是把原来的货币系统中能被其他数表示的数删掉

那我就算有多少数能被别的数表示,那肯定是要被比它小的表示

于是排个序做完全背包就好了

但是我太zz不会完全背包,然后写了个bitset乱搞还开了250000,T到亲妈都不认识

其实完全背包就是把背包的从后往前更新变成了从前往后更新

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 typedef long long ll; 7 const int maxn=105,maxa=250; 8 9 inline ll rd(){10 ll x=0;char c=getchar();int neg=1;11 while(c<'0'||c>'9'){12 if(c=='-') neg=-1;13 c=getchar();14 }15 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();16 return x*neg;17 }18 19 int a[maxn],N;20 bool f[25005];21 22 int main(){23 // freopen("money.in","r",stdin);24 // freopen("money.out","w",stdout);25 int i,j,k;26 for(int T=rd();T;T--){27 N=rd();28 int ans=N;29 for(i=1;i<=N;i++) a[i]=rd();30 memset(f,0,sizeof(f));31 sort(a+1,a+N+1);32 int M=a[N];33 f[0]=1;34 for(i=1;i<=N;i++){35 if(f[a[i]]) ans--;36 else{37 for(j=a[i];j<=M;j++){38 f[j]|=f[j-a[i]];39 }40 }41 }42 printf("%d\n",ans);43 }44 return 0;45 }

 

转载于:https://www.cnblogs.com/Ressed/p/9981924.html

你可能感兴趣的文章
2018寒假作业_3(电梯版本二)
查看>>
sql复杂查询
查看>>
修改mysql5.7的错误日志级别
查看>>
UVA - 839 Not so Mobile
查看>>
Python考试_第一次
查看>>
[Jquery 插件]活动倒计时,可同步服务器时间,倒计时格式随意设置
查看>>
【財務会計】償却 とは
查看>>
es5和es6对象导出与导入
查看>>
关于timestamp的自动更新
查看>>
【ASP.NET MVC系列】浅谈jqGrid 在ASP.NET MVC中增删改查
查看>>
自制MVC框架的插件与拦截器基础
查看>>
Gvim 配置
查看>>
[Algorithm] 二分查找之旅
查看>>
[02] mybatis-config.xml 全局配置文件解析
查看>>
centos7安装redis单机版
查看>>
FFMpeg框架代码阅读
查看>>
linux的子进程调用exec( )系列函数
查看>>
TFS Instructions
查看>>
MSChart的研究
查看>>
[LeetCode] Intersection of Two Arrays II 两个数组相交之二
查看>>