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

本文共 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

你可能感兴趣的文章
centos下安装nginx
查看>>
redis集群如何清理前缀相同的key
查看>>
redis7--hash set的操作
查看>>
20.字典
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
oracle用户锁定
查看>>
(转)盒子概念和DiV布局
查看>>
Android快速实现二维码扫描--Zxing
查看>>
获取元素
查看>>
nginx+lighttpd+memcache+mysql配置与调试
查看>>
ubuntu12.04 启动apache2 对.htaccess 的支持
查看>>
proxy写监听方法,实现响应式
查看>>
前端工具----iconfont
查看>>
Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机
查看>>
Hello China操作系统STM32移植指南(一)
查看>>
cocos2dx CCEditBox
查看>>
VC++2012编程演练数据结构《8》回溯法解决迷宫问题
查看>>
第一阶段冲刺06
查看>>
WIN下修改host文件并立即生效
查看>>
十个免费的 Web 压力测试工具
查看>>