洛谷P1474 货币系统 Money Systems】的更多相关文章

P1474 货币系统 Money Systems 250通过 553提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1…
P1474 货币系统 Money Systems !! 不是noip2018的那道题. 简单的多重背包的变式. #include <iostream> #include <cstdio> using namespace std; //Mystery_Sky // #define ll long long #define M 10000 int v, m; ll c[M], f[M]; int main() { scanf("%d%d", &m, &…
P1474 货币系统 Money Systems 题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它.…
题目链接:https://www.luogu.org/problemnew/show/P1474 题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2…
题目: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(…
题目描述 在网友的国度中共有$ n $种不同面额的货币,第 i种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为\(n\).面额数组为 \(a[1..n]\)的货币系统记作$ (n,a)$. 在一个完善的货币系统中,每一个非负整数的金额 \(x\) 都应该可以被表示出,即对每一个非负整数 \(x\),都存在 \(n\) 个非负整数\(t[i]\)满足 \(a[i] \times t[i]\) 的和为$ x$.然而, 在网友的国度中,货币系统可能是不完善…
题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它. 写一个程序来计算有多少种方法用给定的货币系统来构…
题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它. 写一个程序来计算有多少种方法用给定的货币系统来构…
题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它. 写一个程序来计算有多少种方法用给定的货币系统来构…
题目链接:https://www.luogu.org/problemnew/show/P5020 这道题感觉比较水啊,身为普及组蒟蒻都不费力的做出来了,而且数据范围应该还能大一些,n起码几万几十万都不一定T.求过~ 分析: 本题是类似完全背包问题,分析样例我们可以得出结论:一种面值的货币如果可以由此系统中的其他货币组合而来,那么它就是可有可无的. 由此我们分析:不妨只在一个系统中做出删减,删掉尽可能多的面值不就行了吗? 对于每个数,我们判断其能否组合出,就成了典型的背包问题. 我们设f[i]f[…
题目链接:https://www.luogu.org/problemnew/show/1474 题目大意:有V种货币,求用V种货币凑出面值N有多少种方案. 解题思路:就是完全背包问题,只是将求最大价值改为求最多方案数. 注意以下两点:①dp[0]要初始化为1 ②状态转移方程:dp[j]=dp[j]+dp[j-a[i]] 代码: #include<iostream> #include<cstring> #include<cstdio> using namespace st…
题目 题意简化一下就是找题目给定的n个数最多能消掉多少个,我们用个tong[i]来记录i这个数值能不能用小于等于i的货币组合起来,等于1意味着他只能由自己本身的货币组成,等于2说明他可以被其他货币组成(此时的数不一定是货币,但等于2的货币不能要),最后只需要统计一下n个数里有几个tong等于1即可,然后对于每个tong等于1或2的数,都可以跟另外一个tong等于1或2的数组合起来,又可以递推求解tong数组了 //long long,inline后加函数类型 //关键字:y1,time,tm,e…
传送门 一个手动枚举能过一半点而且基本靠数学的题目(然而我考试的时候只有25分) 读清题目后发现就是凑数嘛,.... 对啊,就是凑数,怎么凑是重点啊.. 于是就绝望了一小时手动枚举n从1到5的情况 吐槽完毕,开始分析:1.大的数只能由小的数凑出(好像是废话,但确实有用) 2.最小的数必须选 3.一个数的倍数也能凑出 4.一个数减去需要的数能被凑出的话这个数肯定能凑出(比如你有2,3,那么5-3=2,如果2可以凑出那么5也可以凑出) 5.除此以外在没有可以凑出的数 交代码 #include<bit…
题目 这个题打眼看上去可能是一个数论或者DP,其实我们可以简化一下题意,即 给定一个集合\(\alpha\),找到几个数使得这几个数可以拼凑起来这个集合里所有的数,且需要使这些数的个数最小. 这样这个题就不难理解了,首先看到数据范围,发现暴搜可以骗不少分,但其实这个题暴搜是可以A的,主要就是可以如何使暴搜的速度加快. 首先我们想如果\(a\)可以被其他数表示出来,且\(a-b\)也可以被其他数表示出来,那\(b\)肯定要在这个集合里,所以我们可以枚举b,然后判断\(a-b\)是否已经被筛过了,但…
关键: 要使m最小,(m,b)中的数不能用(n,a)中的数表示出来 对于 3  19  10  6 19=10+3+3+3 6=3+3 只有3 和 10 不能被(n,a)中的数表示 所以m=2 只需要计算出存在多少个能被其它数组成的数计算出来就行了. 法一:完全背包 一个数只能被比它小的数字组成而不能被比它大的数字组成. 可以首先对数组排序,然后对于每一个数考虑能不能被它前面的数字所组成. 若x能够被前i个数组成,那么x-a[i]也能被前i个数组成 f[x]表示x能否被组成 则f [ x ] =…
题目链接:https://www.luogu.org/problem/P5020 这道题目是一道模拟题,但是又有一点多重背包的思想在里面. 首先我们定义一个 vis[i] 来表示和为 i 的情况在之前有没有出现过, 一开始当然所有的 vis[i] (除了 vis[0] )都为 false ,只有 vis[0] 为 true , 然后对于每一个 i 来说,我们从 a[i] 到 maxa (最大值)去判断 vis[j-a[i]] 是否为 true , 如果 vis[j-a[i]] 为 true,那么…
P1474 货币系统 Money Systems 题目描述 母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它.…
背包问题的方案总数 对于一个给定了背包容量.物品费用.物品间相互关系(分组.依赖等)的背包问题,除了再给定每个物品的价值后求可得到的最大价值外,还可以得到装满背包或将背包装至某一指定容量的方案总数. 对于这类改变问法的问题,一般只需将状态转移方程中的max改成sum即可. 例如若每件物品均是01背包中的物品,转移方程即为f[i][v]=sum{f[i-1][v],f[i-1][v-w[i]]+c[i]},初始条件f[0][0]=1. 事实上,这样做可行的原因在于状态转移方程已经考察了所有可能的背…
母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统.由于它们特殊的思考方式,它们对货币的数值感到好奇. 传统地,一个货币系统是由1,,, 或 ,, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {,,,,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5++,等等其它. 写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值.保证总数将会适合long…
这是USACO的一道DP题,难度是提高—. 这道题是告诉我们货币种类,问你用这些货币组成一个面值最大有多少种方案.第一眼看上去想用dfs记忆化,随后发现其实这个题很类似于完全背包,可以取无线件,但是他的转移方程与普通的不同.而我一开始并没有静下心来去思考,没有想出来.最后得出了结论dp[j]=dp[j]+dp[j-coin[i]].最后输出dp[T]即可. 1.认真推导状态转移方程,别老想着套用公式,必须举几个例子来推导出来,不要去畏惧困难,不要去怕麻烦 2.注意循环变量i于j别混淆,尤其是++…
题意:有n个任务,第i个的存在时间是li~ri,有个权值.求t时刻第k大的权值. 这毒瘤...本来是前缀和 -> 主席树,我是树套树...然后光荣TLE. 其实很裸.一开始我写的是每个位置维护一个权值线段树.因为要片改点查,就用差分 + 树状数组搞定了.然后超时... 仔细思考,发现不带修可以直接用主席树. 把差分数组插入进去就行了,查询就是前缀和.这么一看好像主席树就是同时对多个数组做前缀和,每个数组就是线段树的一个位置. 我没用标记永久化,标记下传的时候直接新建的节点. #include <…
传送门 背包 ——代码 #include <cstdio> #include <iostream> #define LL long long int v, n; LL f[10001]; inline int read() { int x = 0, f = 1; char ch = getchar(); for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1; for(; isdigit(ch); ch = getchar(…
今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2.P1474 货币系统 Money Systems:(线性动规,DP方程也比较好想) 3.UVA12563 劲歌金曲 Jin Ge Jin Qu hao :(01背包的变式,很基础,也很经典,紫书上的题) 4.P3974 [TJOI2015]组合数学 :(之前我还写过这题的题解,天津省选的题,DAG上…
[洛谷P2584][ZJOI2006]GameZ游戏排名系统题解 题目链接 题意: GameZ为他们最新推出的游戏开通了一个网站.世界各地的玩家都可以将自己的游戏得分上传到网站上.这样就可以看到自己在世界上的排名.得分越高,排名就越靠前.当两个玩家的名次相同时,先上传记录者优先.由于新游戏的火爆,网站服务器已经难堪重负.为此GameZ雇用了你来帮他们重新开发一套新的核心. 排名系统通常要应付三种请求:上传一条新的得分记录.查询某个玩家的当前排名以及返回某个区段内的排名记录.当某个玩家上传自己最新…
题目大意:同[洛谷P4291][HAOI2008]排名系统(双倍经验) 题解:略 卡点:无 C++ Code: #include <cstdio> #include <map> #include <iostream> #define maxn 250010 std::map<std::string, int> name; int n, namenum; struct node { int v, p; inline node(int __v = 0, int…
Description 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统. [In their own rebellious way],,他们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其…
题目链接 不是双倍经验我会去\(debug\)一上午? 一开始我是用的\(map+string\),跑的太慢了,T了4个点. 后来我手写了\(string\),重载了小于号,依然用的\(map\),T了2个点. 然后我加入各种卡常,发现没有用. \(\cdots\) 然后我把手写\(string\)改成字符串哈希,依然用\(map\)存,还是\(T\)了2个点. 然后继续各种优化,没有用. 然后去看\(yyb\)聚聚的题解,原来可以每操作几百次随机\(Splay\)一下来保证树的随机性,只\(T…
Description 母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统. [In their own rebellious way],,他们对货币的数值感到好奇. 传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的. 母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值. 举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其…
[LG5020][NOIP2018]货币系统 题面 洛谷 题解 考场上第一眼还不会233 可以发现只要可以被其他的货币通过一些奇奇怪怪的方式表示出来的货币就\(ban\)掉即可 就是个完全背包 我是统计的方案数,用\(unsigned\) \(long\) \(long\)防炸\(int\) 就算炸掉了无符号长整型也可能对 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstr…
[TOC] 题目名称:货币系统 来源:2018年NOIP提高组 链接 博客链接 CSDN 洛谷博客 洛谷题解 题目链接 LibreOJ(2951) 洛谷(P5020) 大视野在线评测(1425) 题目内容 题目描述 在网友的国度中共有$n$种不同面额的货币,第$i$种货币的面额为$a[i]$,你可以假设每一种货币都有无穷多张.为了方便,我们把货币种数为$n$.面额数组为$a[1..n]$ 的货币系统记作$(n,a)$. 在一个完善的货币系统中,每一个非负整数的金额$x$都应该可以被表示出,即对每…