当前位置: 首页 > news >正文

BZOJ 1708: [Usaco2007 Oct]Money奶牛的硬币( dp )

背包dp..

--------------------------------------------------------------------------------

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
 
#define rep( i , n ) for( int i = 0 ; i < n ; ++i )
#define clr( x , c ) memset( x , c ,sizeof( x ) )
 
using namespace std;
 
typedef long long ll;
 
const int maxn = 10000 + 5;
 
ll dp[ maxn ];
 
int main() {
int n , v;
cin >> n >> v;
clr( dp , 0 );
dp[ 0 ] = 1;
while( n-- ) {
int w;
scanf( "%d" , &w );
for( int i = w ; i <= v ; i++ )
   dp[ i ] += dp[ i - w ];
}
cout << dp[ v ] << "\n";
return 0;
}

  

-------------------------------------------------------------------------------- 

 

1708: [Usaco2007 Oct]Money奶牛的硬币

Time Limit: 5 Sec   Memory Limit: 64 MB
Submit: 564   Solved: 368
[ Submit][ Status][ Discuss]

Description

在创立了她们自己的政权之后,奶牛们决定推广新的货币系统。在强烈的叛逆心理的驱使下,她们准备使用奇怪的面值。在传统的货币系统中,硬币的面值通常是1,5,10,20或25,50,以及100单位的货币,有时为了更方便地交易,会发行面值为2单位的硬币。 奶牛们想知道,对于一个给定的货币系统,如果需要正好凑出一定数量的钱,会有多少种不同的方法。比如说,你手上有无限多个面值为{1,2,5,10,...}的硬币,并且打算凑出18单位货币,那么你有多种方法来达到你的目的:18*1,9*2,8*2+2*1,3*5+2+1,以及其他的未列出的若干方案。 请你写一个程序,帮奶牛们计算一下,如果想用有V (1 <= V <= 25)种面值的硬币,凑出总价值为N(1 <= N <= 10,000)的一堆钱,一共有多少种不同的方法。答案保证不会超出C/C++中的'long long',Pascal中的'Int64',或是Java中的'long'的范围。

Input

* 第1行: 2个用空格隔开的整数:V和N

* 第2..V+1行: 每行1个整数,表示1种硬币面值

Output

* 第1行: 输出1个正整数,表示用这V种面值的硬币,凑出N单位的货币的不同方法总数。

Sample Input

3 10
1
2
5

Sample Output

10

HINT

Source

Gold

 

转载于:https://www.cnblogs.com/JSZX11556/p/4551513.html

相关文章:

  • 20951文件管理
  • 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
  • DIPL:用区块链技术引领数字化变革
  • mysql 查询字段中包含中文的查询语句
  • SharePoint 2013 开发——SharePoint Designer 2013工作流
  • 海尔:互联网时代的模式创新(全文)
  • React 的未来,与 Suspense 同行
  • 一些分析工具和框架
  • Gogs服务搭建
  • SQL中大概有这么几种JOIN
  • javascript系列--浅析Promise内部结构
  • socket计划——一个简单的例子
  • java同学毕业后学习之路建议
  • 【必备】史上最全的浏览器 CSS JS Hack 手册(转)
  • ElementUI Tree树形控件renderContent return时报错
  • #Java异常处理
  • [case10]使用RSQL实现端到端的动态查询
  • [译]前端离线指南(上)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Computed property XXX was assigned to but it has no setter
  • golang 发送GET和POST示例
  • java8-模拟hadoop
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript新鲜事·第5期
  • JS变量作用域
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • MySQL QA
  • MySQL的数据类型
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • PHP那些事儿
  • Vue.js 移动端适配之 vw 解决方案
  • 大整数乘法-表格法
  • 和 || 运算
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 通过git安装npm私有模块
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 我是如何设计 Upload 上传组件的
  • 新书推荐|Windows黑客编程技术详解
  • 用Canvas画一棵二叉树
  • 再谈express与koa的对比
  • 1.Ext JS 建立web开发工程
  • AI算硅基生命吗,为什么?
  • Java总结 - String - 这篇请使劲喷我
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 进程与线程(三)——进程/线程间通信
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #NOIP 2014# day.1 T2 联合权值
  • #WEB前端(HTML属性)
  • $jQuery 重写Alert样式方法
  • (+4)2.2UML建模图
  • (二)c52学习之旅-简单了解单片机
  • (二)学习JVM —— 垃圾回收机制
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)ssm高校社团管理系统 毕业设计 234162