LG传送门

完全背包板子题

显然就是判断有多少种面值的货币可以被其他面值的货币表示,完全背包搞一搞就好了。

考场代码(一看这两格缩进就知道是考场代码):

#include<cstdio>
#include<cstring>
#include<algorithm>
#define R register
#define I inline
using namespace std;
const int S=110,N=25010;
I int rd(){
R int f=0; R char c=getchar();
while(c<48||c>57) c=getchar();
while(c>47&&c<58) f=f*10+(c^48),c=getchar();
return f;
}
int a[S],f[N];
I int max(int x,int y){return x>y?x:y;}
int main(){
R int T=rd(),n,m,p,i,j,k;
while(T--){
n=rd(),m=0,p=0,memset(f,0,sizeof f),f[0]=1;
for(i=1;i<=n;++i) a[i]=rd(),p=max(p,a[i]);
sort(a+1,a+1+n);
for(i=1,k=1;i<=p;++i){
for(j=1;j<k;++j)
if(f[i-a[j]]){f[i]=1; break;}
if(i==a[k]){
if(f[i]) ++m;
f[a[k]]=1,++k;
}
}
printf("%d\n",n-m);
}
return 0;
}

仔细一看我的考场代码写好像把完全背包板子里面那层循环丢到外面来了,然而跑得飞快,洛谷上测72ms,下面有正常写法394ms。

#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define R register
#define I inline
using namespace std;
const int S=110,N=2500010; char buf[S],*p1,*p2;
I char gc(){return p1==p2&&(p2=(p1=buf)+fread(buf,1,S,stdin),p1==p2)?EOF:*p1++;}
I int rd(){
R int f=0,b=1; R char c=gc();
while((c<48||c>57)&&c!=45) c=gc();
if(c==45) b=0,c=gc();
while(c>47&&c<58) f=(f<<3)+(f<<1)+(c^48),c=gc();
return b?f:~f+1;
} int a[S],f[N];
I int max(int x,int y){return x>y?x:y;}
int main(){
R int T=rd(),n,m,p,i,j;
while(T--){
n=rd(),m=0,p=0,memset(f,0,sizeof f),f[0]=1;
for(i=1;i<=n;++i) a[i]=rd(),p=max(p,a[i]);
sort(a+1,a+1+n);
for(i=1;i<=n;++i){
if(f[a[i]]) ++m;
for(j=a[i];j<=p;++j)
if(f[j-a[i]]) f[j]=1;
}
printf("%d\n",n-m);
}
return 0;
}

[NOIp2018]货币系统 背包的更多相关文章

  1. 【LG5020】[NOIP2018]货币系统

    [LG5020][NOIP2018]货币系统 题面 洛谷 题解 考场上第一眼还不会233 可以发现只要可以被其他的货币通过一些奇奇怪怪的方式表示出来的货币就\(ban\)掉即可 就是个完全背包 我是统 ...

  2. luogu5020 [NOIp2018]货币系统 (完全背包)

    我那个新的货币系统,就是把原来的货币系统中能被其他数表示的数删掉 那我就算有多少数能被别的数表示,那肯定是要被比它小的表示 于是排个序做完全背包就好了 但是我太zz不会完全背包,然后写了个bitset ...

  3. NOIP2018货币系统

    题目大意 给出一组数,求出其中共有多少数不能被其他数表示 解题思路 法一:可爱的动态规划 这个思路还是比较好想的(也比较好写?) 有依赖关系的背包,思路这道题是差不多的 填满型01背包 (关于代码) ...

  4. 【比赛】NOIP2018 货币系统

    可以发现最后的集合一定是给定集合的子集 所以就变成了裸的背包嘛,对于每个数判断它能不能被其它数表示出来,如果可以,就表示这个数是没用的,可以去掉 #include<bits/stdc++.h&g ...

  5. 洛谷P1474货币系统——背包方案计数

    题目:https://www.luogu.org/problemnew/show/P1474 完全背包,注意方案计数的方法. 代码如下: #include<iostream> #inclu ...

  6. NOIP2018 货币系统

    题面 思路 先分析一下,a集合的子集肯定不存在可以用它来表示的数,a集合是不能够表示的. 所以问题简化了成为选出a的一个子集(个数最少),能够表达a集合所有能表达的数. 接下来继续分析 如:1 2 4 ...

  7. 【数学】【背包】【NOIP2018】P5020 货币系统

    传送门 Description 在网友的国度中共有 \(n\) 种不同面额的货币,第 \(i\) 种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 \(n ...

  8. [NOIp2018提高组]货币系统

    [NOIp2018提高组]货币系统 题目大意: 有\(n(n\le100)\)种不同的货币,每种货币的面额为\([1,25000]\)之间的一个整数.若两种货币系统能够组合出来的数是相同的的,那我们就 ...

  9. P1474 货币系统 Money Systems(完全背包)(大水题)

    题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单 ...

随机推荐

  1. 基于cookie和session的登录验证

    settings.py MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions ...

  2. 【JavaScript】插件参数的写法

    就是实现复制的一个过程 (function() { var Explode = function(container, params) { 'use strict'; var n = this; if ...

  3. 《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例KingView 6.53版本CVE-2011-0406漏洞

    在一个笔记本上开两个虚拟机有点卡,而且太麻烦,就把metasploit的目标靶机放在别的机器上了,ip自己配置了一下, 目标主机:192.168.137.254 入侵机:192.168.137.253 ...

  4. 6 spark 存储体系 --内存管理

    6.5  memoryMode

  5. 【洛谷P2680】运输计划

    题目链接 题目大意: 一棵\(n\)个点的带边权的数,给定\(m\)条树上两点间的路径,现在你可以让树上任意一条边的权值变为零, 问如何选边使得\(m\)条路径中边权和最大的路径的边权和最小 \(\m ...

  6. [USACO08JAN]电话线$Telephone \ \ Lines$(图论$+SPFA+$ 二分答案)

    #\(\mathcal{\color{red}{Description}}\) \(Link\) 给定一个图,请你求出在把其中自由选择的\(k\)条的权值都置为零的情况下,图中\(1-N\)最短路上的 ...

  7. mac终端输入python默认打开python3

    *** 1. 终端打开.bash_profile文件 ***open ~/.bash_profile *** 2. .bash_profile文件内容 ***# Setting PATH for Py ...

  8. OO第二次单元总结——电梯多线程调度问题

    OO第二次单元总结--电梯多线程调度问题 在这个单元OO学习中,我们终于迎来了期待已久(不是)的电梯多线程调度作业,开启了OO打怪之路的新关卡.虽然说经过了这三次作业,我对于多线程的理解还不能算是熟练 ...

  9. vue bus方式解决非父子组件间的传值

    对于非父子组件之间的传值 通常使用VUEX 和总线等方式解决 这里我聊聊发布订阅模式(总线) <body> <div class="app"> <ch ...

  10. 一张图一个表——CSS选择器总结

    CSS选择器总结: (这些表是一张图片^_^) 看底部 完整思维导图图片和表格的下载地址:https://download.csdn.net/download/denlnyyr/10597820 (我 ...