硬币 coin题解
来源:互联网 发布:node.js入门pdf 编辑:程序博客网 时间:2024/06/13 07:32
题目描述
你有n个硬币,第i个硬币面值为ai,现在总队长想知道如果丢掉了某个硬币,剩下的硬币能组成多少种价值?(0 价值不算)
输入
第一行一个整数n
第二行n 个整数:a1,a2…an。
输出
输出n行,第i行表示没有第i个硬币能组成多少种价值。
样例输入
3
1 1 3
样例输出
3
3
2
提示
【数据范围】
对于30%的数据 1<=n<=50,1<=ai<=100;对于100%的数据 1<=n<=100,1<=ai<=3000。
想法
- 简单的背包DP
算法
- 见代码
代码
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <string>#include <cmath>#define MAXN 300005using namespace std;int n,x[105],f[MAXN];int main(){ scanf("%d",&n); for (int i=1;i<=n;i++)scanf("%d",&x[i]); f[0]=1; for (int i=1;i<=n;i++) for (int j=MAXN;j>=0;j--) if(f[j]&&j+x[i]<=MAXN)f[j+x[i]]+=f[j]; for (int i=1;i<=n;i++) { int ans=0; for (int j=0;j<=MAXN;j++) if(f[j]&&j+x[i]<=MAXN)f[j+x[i]]-=f[j]; for (int j=1;j<=MAXN;j++) if(f[j])ans++; printf("%d\n",ans); for (int j=MAXN;j>=0;j--) if(f[j]&&j+x[i]<=MAXN)f[j+x[i]]+=f[j]; } return 0;}
0 0
- 硬币 coin题解
- Coin Change【硬币找零】
- 硬币题解
- uva674 - Coin Change(硬币找零)
- Coin Change 2-硬币问题
- ZJU2034 False Coin - 称硬币问题
- 抛硬币模拟(Coin Tossing Simulation)
- 硬币找零(coin.c/cpp/pas)
- HOJ 2939 Coin Question-------放硬币游戏
- LeetCode 322. Coin Change(兑换硬币)
- 322. Coin Change(硬币找零)
- 【蓝桥杯题解】矩阵翻硬币
- (POJ1753)翻硬币题解
- HDOJ 3537 Daizhenyang's Coin (翻硬币游戏)
- hdu 3537 Daizhenyang's Coin(博弈-翻硬币游戏)
- UVA 674 Coin Change 换硬币 经典dp入门题
- UVa 11264 Coin Collector (选硬币&贪心好题)
- HDU 3537 Daizhenyang's Coin (经典翻硬币博弈问题)
- TFS erasure code实现方案
- 豆瓣爬虫
- SEAndroid中sepolicy/adbd.te策略文件分析
- linux c 使用正则表达式
- Linux chattr和lsattr
- 硬币 coin题解
- Mjoke app的开发
- Linux永久关闭防火墙 vsftp 开机自启动
- xcode7升级后导致奔溃到jsonkit
- mybatis在xml文件中处理大于号小于号的方法
- MTK手机正常开机流程以及开机常见故障诊断
- update 多列
- Joomla写日志JLog
- TextView的跑马灯显示