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

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;…
[LG5020][NOIP2018]货币系统 题面 洛谷 题解 考场上第一眼还不会233 可以发现只要可以被其他的货币通过一些奇奇怪怪的方式表示出来的货币就\(ban\)掉即可 就是个完全背包 我是统计的方案数,用\(unsigned\) \(long\) \(long\)防炸\(int\) 就算炸掉了无符号长整型也可能对 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstr…
我那个新的货币系统,就是把原来的货币系统中能被其他数表示的数删掉 那我就算有多少数能被别的数表示,那肯定是要被比它小的表示 于是排个序做完全背包就好了 但是我太zz不会完全背包,然后写了个bitset乱搞还开了250000,T到亲妈都不认识 其实完全背包就是把背包的从后往前更新变成了从前往后更新 #include<cstdio> #include<cstring> #include<algorithm> #include<bitset> using name…
题目大意 给出一组数,求出其中共有多少数不能被其他数表示 解题思路 法一:可爱的动态规划 这个思路还是比较好想的(也比较好写?) 有依赖关系的背包,思路这道题是差不多的 填满型01背包 (关于代码) 写起来坑还是比较多的,ans,f记得清零,边界记得写就不说了,转移方程那里 f[j] |= f[j - a[i]]; 或符号是一定要加的,举个栗子说明: 以样例为例 a[i] = 3,更新f[3],f[6],f[9],f[12]等等,如果不写或符号,  在a[i]=10更新时会出现 f[12] =…
可以发现最后的集合一定是给定集合的子集 所以就变成了裸的背包嘛,对于每个数判断它能不能被其它数表示出来,如果可以,就表示这个数是没用的,可以去掉 #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define db double #define ld long double #define ull unsigned long long #define ft first #define sd second…
题目:https://www.luogu.org/problemnew/show/P1474 完全背包,注意方案计数的方法. 代码如下: #include<iostream> #include<cstdio> using namespace std; long long v,n,w[30],f[30005]; int main() { scanf("%lld%lld",&v,&n); for(int i=1;i<=v;i++) scanf(…
题面 思路 先分析一下,a集合的子集肯定不存在可以用它来表示的数,a集合是不能够表示的. 所以问题简化了成为选出a的一个子集(个数最少),能够表达a集合所有能表达的数. 接下来继续分析 如:1 2 4 1没有两集合内数可以表达,留下 2=1+1 所以2删去 3=2+1 所以1删去,3可以被表达(可当做集合内数) 4=1+3 所以4删去 只剩1了,就输出1. 代码 // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace…
传送门 Description 在网友的国度中共有 \(n\) 种不同面额的货币,第 \(i\) 种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为 \(n\).面额数组为 \(a[1..n]\) 的货币系统记作 \((n,a)\). 在一个完善的货币系统中,每一个非负整数的金额 \(x\) 都应该可以被表示出,即对每一个非负整数 \(x\),都存在 \(n\) 个非负整数 \(t[i]\) 满足 \(a[i] \times t[i]\) 的和为 \(…
[NOIp2018提高组]货币系统 题目大意: 有\(n(n\le100)\)种不同的货币,每种货币的面额为\([1,25000]\)之间的一个整数.若两种货币系统能够组合出来的数是相同的的,那我们就称这两种货币系统是等价的.给定一个货币系统,求不同面额货币数最少的等价的货币系统. 思路: 将面额从小到大排序,如果一种面额能够被其它面额表示出来,那么这种面额就是多余的.因此只需要跑一个背包即可. 源代码: #include<cstdio> #include<cctype> #inc…
题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它. 写一个程序来计算有多少种方法用给定的货币系统来构…