uva 10163
来源:互联网 发布:linux wine怎么使用 编辑:程序博客网 时间:2024/05/17 09:29
题目大意:m个仓库n个守卫,选出最有方案,一看就是01包,然而在边界条件上我算是载了大跟头,看来设置初始数据和边界条件还是非常有学问,即使状态转移方程没有问题初始值设置的有问题也不行,同时这个两次DP真的是人想出来的吗?我愉快的在求最小费用上wa了好多次!看来自己还是菜啊,真是弱渣。
题目链接:https://vjudge.net/problem/UVA-10163
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#define max(a,b) (((a)>(b))?(a):(b))#define min(a,b) (((a)<(b))?(a):(b))using namespace std;const int inf = 0x3f3f3f3f;int cnts , cntm;int v[32];int dp[105][32];int f[105][32];int cmp (int a , int b) { return a > b;}void solve () { for (int i = 0 ; i <= cntm ; i++) { dp[0][i] = inf; } for (int i = 1 ; i <= cnts ; i++) { dp[i][0] = 0; } for (int i = 1 ; i <= cnts ; i++) { for (int j = 1 ; j <= cntm ; j++) { dp[i][j] = dp[i][j-1]; for (int k = 1 ; k <= i ; k++) { if(dp[i][j] < min(dp[i-k][j-1],v[j]/k)) dp[i][j] = min(dp[i-k][j-1],v[j]/k); } } } for (int i = 0 ; i <= cntm ; i++) { f[0][i] = 0; } for (int i = 1 ; i <= cnts ; i++) { f[i][0] = inf; } for (int i = 1 ; i <= cnts ; i++) { for (int j = 1 ; j <= cntm ; j++) { f[i][j] = f[i][j-1]; for (int k = 1 ; k <= i ; k++) { if (v[j]/k >= dp[cnts][cntm]) { f[i][j] = min(f[i][j] , f[i-k][j-1]+v[j]); cout << i << " " << j << " " << f[i][j] << endl; } } } } f[cnts][cntm] = !dp[cnts][cntm] ? 0 : f[cnts][cntm]; printf ("%d %d\n" , dp[cnts][cntm] , f[cnts][cntm]);}int main () { while(scanf("%d%d",&cnts,&cntm)) { if (!cnts && !cntm) break; memset(dp,inf,sizeof(dp)); memset(f,0,sizeof(f)); memset(v,0,sizeof(v)); for (int i = 1 ; i <= cntm ; i++) cin >> v[i]; sort(v+1,v+1+cntm,cmp); solve(); }}
0 0
- uva 10163
- uva 10163 Storage Keepers
- UVA 10163 Storage Keepers
- UVA 10163 Storage Keepers
- UVA - 10163 Storage Keepers
- uva 10163 Storage Keepers
- UVA 10163 - Storage Keepers
- uva 10163(dp)
- uva 10163 Storage Keepers
- UVA - 10163 Storage Keepers
- uva 10163 - Storage Keeperst
- uva 10163 两次Dp
- UVa 10163 Storage Keepers
- UVA - 10163 Storage Keepers
- uva 10163 dp
- uva 10163 storage keeper
- UVA 10163 Storage Keepers
- 【DP】Uva 10163
- JavaScript原型深入解析
- 安卓底部导航栏菜单弹出属性动画
- 图片框架Picasso的简单使用
- 欢迎使用CSDN-markdown编辑器
- MySQL操作03_插入、修改和删除数据操作
- uva 10163
- 说说UIViewController 那些事儿(上)
- MySQL操作04_注册和登录
- 从一段奇怪代码开始说
- 进程与多进程服务器
- Tampermonkey中文文档
- 有关小数的取舍
- Springboot 第一次体验
- log4cplus 输出阻塞 “undefined reference to 'log4cplus::Logger::operator=(log4cplus::Logger&&)'”