【DP 训练】Storage Keepers, UVa10163
来源:互联网 发布:pfordelta算法 编辑:程序博客网 时间:2024/05/16 11:14
#include<bits/stdc++.h>using namespace std;#define maxn 110#define INF 0x3f3f3f3fint n,m;int p[40];int f[40][maxn],g[40][maxn];//status:考虑到第i个人,分配了j个仓库的解 int main(){while(scanf("%d%d",&n,&m)==2&&(n||m)){for(int i=1;i<=m;i++)scanf("%d",&p[i]);memset(f,0,sizeof(f));for(int i=1;i<=m;i++)//枚举人 {f[i-1][0] = INF;for(int j=1;j<=n;j++)//枚举仓库 {f[i][j] = f[i-1][j];for(int k=1;k<=j;k++)//枚举分配 {f[i][j] = max(f[i][j],min(f[i-1][j-k],p[i]/k));//最小值最大 }}}memset(g,0x3f,sizeof(g));for(int i=1;i<=m;i++){g[i-1][0] = 0;for(int j=1;j<=n;j++){g[i][j] = g[i-1][j];for(int k=1;k<=j;k++){int s = p[i]/k;//当前已经到达最优解 if(s>=f[m][n]){//更改能力值 这里>= 如果是==就要WAg[i][j] = min(g[i][j],g[i-1][j-k]+p[i]);}}}}printf("%d %d\n",f[m][n],f[m][n]==0?0:g[m][n]);}return 0;}
0 0
- 【DP 训练】Storage Keepers, UVa10163
- uva10163 Storage Keepers (未能自己敲出来)
- uva_10163 - Storage Keepers ( 普通DP )
- Storage Keepers - UVa 10163 dp
- UVA 10163 - Storage Keepers(dp)
- 10163 - Storage Keepers(DP)
- UVA 10163 - Storage Keepers(dp)
- UVA 10163 Storage Keepers(dp + 背包)
- uva 10163 Storage Keepers (dp)
- UVA - 10163 - Storage Keepers(两次dp)
- UVA 10163 Storage Keepers(两次DP)
- UVA 10163-Storage Keepers(DP)
- uva 10163 Storage Keepers (DP)
- UVA-10163 Storage Keepers (DP多次)
- UVA 10163 Storage Keepers 两次dp
- uva10163(DP)
- UVA 10163 Storage Keepers (01背包DP + 二分)
- uva10163 双重dp
- Javascript块级作用域
- nginx 重启问题
- 浙大 PAT b1047
- 工具类—如何快速获得Android应用的版本号
- centos下nginx的配置
- 【DP 训练】Storage Keepers, UVa10163
- 深度学习工程师招聘
- 漏洞learning[安全大事记]
- MySQL快速入门
- Oracle 11g升级至11.2.0.3
- Hough变换检测直线
- Git典型工作流程
- 类定义,封装,构造方法,构造方法重载练习
- javaWeb项目用过滤器filter实现登陆成功后才能访问主页面,否则直接输入主页面的地址自动跳转到登陆界面