【BZOJ】1618: [Usaco2008 Nov]Buying Hay 购买干草(dp)
2024-10-12 10:38:01
http://www.lydsy.com/JudgeOnline/problem.php?id=1618
裸的01背包,注意背包的容量不是v即可。
#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
#define rep(i, n) for(int i=0; i<(n); ++i)
#define for1(i,a,n) for(int i=(a);i<=(n);++i)
#define for2(i,a,n) for(int i=(a);i<(n);++i)
#define for3(i,a,n) for(int i=(a);i>=(n);--i)
#define for4(i,a,n) for(int i=(a);i>(n);--i)
#define CC(i,a) memset(i,a,sizeof(i))
#define read(a) a=getint()
#define print(a) printf("%d", a)
#define dbg(x) cout << #x << " = " << x << endl
#define printarr(a, n, m) rep(aaa, n) { rep(bbb, m) cout << a[aaa][bbb]; cout << endl; }
inline const int getint() { int r=0, k=1; char c=getchar(); for(; c<'0'||c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) r=r*10+c-'0'; return k*r; }
inline const int max(const int &a, const int &b) { return a>b?a:b; }
inline const int min(const int &a, const int &b) { return a<b?a:b; } const int N=105, oo=~0u>>1;
int f[50005+5005], v[N], w[N], n, V; int main() {
read(n); read(V);
int mx=0;
for1(i, 1, n) { read(v[i]); read(w[i]); mx=max(v[i], mx); }
for1(i, 1, V+mx) f[i]=oo>>1;
for1(i, 1, n) {
for(int j=v[i]; j<=mx+V; ++j)
f[j]=min(f[j], f[j-v[i]]+w[i]);
}
int ans=oo;
for(int j=V; j<=mx+V; ++j) ans=min(ans, f[j]);
print(ans);
return 0;
}
Description
约翰的干草库存已经告罄,他打算为奶牛们采购日(1≤日≤50000)磅干草.
他知道N(1≤N≤100)个干草公司,现在用1到N给它们编号. 第i个公司卖的干草包重量为Pi(1≤Pi≤5000)磅,需要的开销为Ci(l≤Ci≤5000)美元.每个干草公司的货源都十分充足,可以卖出无限多 的干草包. 帮助约翰找到最小的开销来满足需要,即采购到至少H磅干草.
Input
第1行输入N和日,之后N行每行输入一个Pi和Ci.
Output
最小的开销.
Sample Input
2 15
3 2
5 3
3 2
5 3
Sample Output
9
FJ can buy three packages from the second supplier for a total cost of 9.
HINT
Source
最新文章
- 【转】工控老鬼】西门子S7200入门&;精通【1】S7200硬件大全
- mac os 错误提示:下载失败 使用已购页面再试一次 解决方法
- Cocos2d-x优化中纹理优化
- sql表设计器的几个默认值
- mongodb持久化
- Java使用默认浏览器打开指定URL
- 浅析深究什么是SOA?
- angular JS中使用jquery datatable添加ng-click事件
- Oracle 11g设置IP访问限制
- 扫描系统进程和获取某进程的PID
- Java中的Map List Set等集合类
- linux环境变量设置 以及 source命令 Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程 Linux 设置环境变量
- 轻松学习java可重入锁(ReentrantLock)的实现原理(转 图解)
- (笔试题)质数因子Prime Factor
- 洛谷——P2784 化学1(chem1)- 化学合成
- Xamarin.Forms学习之位图(二)
- 2015.6.30 反弹的教训(想做T)
- Rails 状态码
- 【IntelliJ 】IntelliJ IDEA 15 创建maven项目
- spark streaming 接收kafka消息之四 -- 运行在 worker 上的 receiver
热门文章
- 聊聊高并发(二十)解析java.util.concurrent各个组件(二) 12个原子变量相关类
- npm run build:h5 报错
- 【微信小程序】request请求POST提交数据,记得要加上header
- FFmpeg 向视频中添加文字
- [Asp.net]Calendar+JqueryUi实现日程管理(右键菜单,添加,编辑,删除,源码)
- VS2008 格式化时候乱码 或者 为全为0
- hadoop+spark集群搭建入门
- Java Persistence with MyBatis 小结2
- PHP SOCKET编程(未完)
- RPC服务框架dubbo(三):Dubbo支持的协议