传送门

一个手动枚举能过一半点而且基本靠数学的题目(然而我考试的时候只有25分)

读清题目后发现就是凑数嘛,....

对啊,就是凑数,怎么凑是重点啊..

于是就绝望了一小时手动枚举n从1到5的情况

吐槽完毕,开始分析:
1.大的数只能由小的数凑出(好像是废话,但确实有用)

2.最小的数必须选

3.一个数的倍数也能凑出

4.一个数减去需要的数能被凑出的话这个数肯定能凑出(比如你有2,3,那么5-3=2,如果2可以凑出那么5也可以凑出)

5.除此以外在没有可以凑出的数

交代码

#include<bits/stdc++.h>
using namespace std;
int a[],o,v[],ans;
int main() {
// freopen("money20.in","r",stdin);
// freopen("1231231.out","w",stdout);
int t;
scanf("%d",&t);
for(int pop=; pop<=t; pop++) {//测t组数据
memset(a,,sizeof a);//初始化
memset(v,,sizeof v);
int n;
scanf("%d",&n);
for(int i=; i<=n; i++)
scanf("%d",&a[i]);
sort(a+,a+n+);//排序,很重要为什么请看刚刚列的第1条
for(int i=; i<=n; i++) {
if(v[a[i]]==)//第一个数或凑不出来的数必须选
ans++;
for(int j=;; j++) {倍数,第3条
o=j*a[i];
if(o<=a[n])//大于最大的数没必要算
v[o]=;
else
break;
}
for(int j=a[i]; j<=a[n]; j++) {
if(v[j-a[i]]==)//减数第4条
v[j]=;
}
}
cout<<ans<<endl;//第5条
ans=;//清空
}
return ;
}

洛谷 p5020 货币系统 题解的更多相关文章

  1. 洛谷P5020 货币系统 题解 模拟

    题目链接:https://www.luogu.org/problem/P5020 这道题目是一道模拟题,但是又有一点多重背包的思想在里面. 首先我们定义一个 vis[i] 来表示和为 i 的情况在之前 ...

  2. 洛谷 P5020 货币系统

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

  3. NOIp2018 TG day1 T2暨洛谷P5020 货币系统:题解

    题目链接:https://www.luogu.org/problemnew/show/P5020 这道题感觉比较水啊,身为普及组蒟蒻都不费力的做出来了,而且数据范围应该还能大一些,n起码几万几十万都不 ...

  4. 洛谷P5020 货币系统

    题目 题意简化一下就是找题目给定的n个数最多能消掉多少个,我们用个tong[i]来记录i这个数值能不能用小于等于i的货币组合起来,等于1意味着他只能由自己本身的货币组成,等于2说明他可以被其他货币组成 ...

  5. 洛谷P5020货币系统

    题目 这个题打眼看上去可能是一个数论或者DP,其实我们可以简化一下题意,即 给定一个集合\(\alpha\),找到几个数使得这几个数可以拼凑起来这个集合里所有的数,且需要使这些数的个数最小. 这样这个 ...

  6. noip2018 洛谷 P5020 货币系统

    关键: 要使m最小,(m,b)中的数不能用(n,a)中的数表示出来 对于 3  19  10  6 19=10+3+3+3 6=3+3 只有3 和 10 不能被(n,a)中的数表示 所以m=2 只需要 ...

  7. 洛谷 P1474 货币系统 Money Systems 题解

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

  8. 洛谷P1474 货币系统 Money Systems

    P1474 货币系统 Money Systems 250通过 553提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 母牛们不但创 ...

  9. 洛谷 P1474 货币系统 Money Systems(经典)【完全背包】+【恰好装满的最大方案数量】

    题目链接:https://www.luogu.org/problemnew/show/P1474 题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对 ...

随机推荐

  1. html中设置锚点定位

    1.使用id定位: (这样的定位可以针对任何标签来定位. ) <a name="1F" href="#1F">锚点1</a> <d ...

  2. JGUI源码:组件及函数封装方法(7)

    以Accordion为例1.在base.js定义一个对象,这样可以和JQuery对象区分开,用户使用组件时比较清晰一点,也可以在这里引用多个库. var JGUI = J = { version : ...

  3. JS“盒子模型”

    列举几个常用的属性 client系列 clientWidth - 盒子真实内容的宽度[content+padding左右],不包括边线和滚动条 clientHeight - 盒子真实内容的高度[con ...

  4. use case 的缺陷

    用use case 获取需求的方法是否有什么缺陷,还有什么地方需要改进? 1.故事/人物/场景非常适合交互式的系统,但是对于其他类型的需求(算法,速度,扩展性,安全性,以及和      系统技术相关的 ...

  5. Web安全基础——小白自学

    2019-02-23   19:41:49 话不多说,直接分享我学习到的东西~ Web万维网(World Wide Web,WWW),这个名称我们熟悉不过啦.跟它密切相关就是HTTP,叫做超文本传输协 ...

  6. 分布式系列十三: nginx

    nginx偏运维, 不过作为开发应该了解它能做什么事情, 其作为技术架构的一部分必不可少 正向代理和反向代理 正向代理是代理的客户端, 反向代理是代理的服务端. nginx就是一款可以作反向代理的we ...

  7. [经验交流] CentOS7 docker 使用 overlay 存储

    关于 docker overlay 存储相比 device mapper 的优势,可以在 google 上搜索相关资料.在 ubuntu 16.04.2 上可以直接使用 overlay 存储,而在 C ...

  8. Week_10 C

    拓扑排序 Week_10    C 题意:输入n行数据a,b  ,表示a的钱数大于b的钱数,最低的人分的的钱数为888,问最少需要多少钱可以分给员工 思路:标准的拓扑排序,不过这题需要逆向拓扑 注意点 ...

  9. 【interview】Microsoft面经

    ~~收集的面经~~ 1. 实现hashtable的put 和get操作 参考:https://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%B ...

  10. [SDOI2009]HH的项链-树状数组/线段树

    树状数组: #include<bits/stdc++.h> using namespace std; ; int id[maxn],tree[maxn],vis[maxn],num[max ...