poj 1015(dp)
看的解题报告。。http://blog.csdn.net/lyy289065406/article/details/6671105
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 6 using namespace std; 7 8 int dp[22][805]; 9 int path[22][805]; 10 int p[205],d[205],s[205],v[205]; 11 int ans[205]; 12 int n,m; 13 14 bool can(int j,int k,int i) 15 { 16 while(j>0) 17 { 18 if(path[j][k]==i) 19 return false; 20 k-=v[path[j][k]]; 21 j--; 22 } 23 return true; 24 } 25 26 int main() 27 { 28 int cas=1; 29 while(scanf("%d%d",&n,&m)) 30 { 31 if(!n && !m) break; 32 memset(dp,-1,sizeof(dp)); 33 memset(path,0,sizeof(path)); 34 for(int i=1;i<=n;i++) 35 { 36 scanf("%d%d",&p[i],&d[i]); 37 s[i]=p[i]+d[i]; 38 v[i]=p[i]-d[i]; 39 } 40 int fix=m*20; 41 dp[0][fix]=0; 42 for(int j=1;j<=m;j++) 43 { 44 for(int k=0;k<=2*fix;k++) 45 { 46 if(dp[j-1][k]>=0) 47 { 48 for(int i=1;i<=n;i++) 49 { 50 if(dp[j][k+v[i]] < dp[j-1][k] + s[i] && can(j-1,k,i)) 51 { 52 dp[j][k+v[i]]=dp[j-1][k]+s[i]; 53 path[j][k+v[i]]=i; 54 } 55 } 56 } 57 } 58 } 59 60 int minv=0; 61 for(int k=0;k<=fix;k++) 62 { 63 if(dp[m][fix+k]>=0 && dp[m][fix+k]>dp[m][fix-k]) 64 { 65 minv=fix+k; 66 break; 67 } 68 else if(dp[m][fix-k]>=0) 69 { 70 minv=fix-k; 71 break; 72 } 73 } 74 printf("Jury #%d\n",cas++); 75 printf("Best jury has value %d for prosecution and value %d for defence:\n",(dp[m][minv]+minv-fix)/2,(dp[m][minv]+fix-minv)/2); 76 for(int j=m,k=minv;j>0;j--) 77 { 78 ans[j]=path[j][k]; 79 k-=v[ans[j]]; 80 } 81 sort(ans+1,ans+m+1); 82 for(int i=1;i<=m;i++) 83 printf(" %d",ans[i]); 84 puts("\n"); 85 } 86 return 0; 87 }
转载于:https://www.cnblogs.com/Missa/archive/2012/11/27/2790613.html
poj 1015(dp)相关推荐
- J - Milking Time POJ - 3616(dp动态规划)
Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that sh ...
- poj 滑雪(DFS)||(DP+递归)
滑雪 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael ...
- Jury Compromise POJ - 1015
Jury Compromise POJ - 1015 题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候选人,然后再从这n个人中 ...
- F - 你这是第一次让我看到落泪了呢 POJ - 3661Running 区间DP
F - 你这是第一次让我看到落泪了呢 POJ - 3661 The cows are trying to become better athletes, so Bessie is running on ...
- opj1837 Balance(dp)
http://poj.org/problem?id=1837 (1)用dp[i][j]表示挂了 i 个重物时 平衡度为 j 的数目: (2)核心部分: for(j=1;j<=m;j++)for( ...
- Fire (poj 2152 树形dp)
Fire (poj 2152 树形dp) 给定一棵n个结点的树(1<n<=1000).现在要选择某些点,使得整棵树都被覆盖到.当选择第i个点的时候,可以覆盖和它距离在d[i]之内的结点,同 ...
- 我是一名铺砖匠——铺砖问题汇总(DP)
鉴于多次遇到铺砖问题,因此目前遇到对此类问题进行总结: 铺砖问题主要分类: 1.简单的一维铺砖问题 2.二维铺砖问题 2*1的砖是否可以铺满N*M的地面 3.二维铺砖铺满有多少种方法 a.2*1的砖铺 ...
- H - Fibonacci POJ - 3070 (矩阵快速幂)
H - Fibonacci POJ - 3070 (矩阵快速幂) Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and ...
- A - Expanding Rods POJ - 1905(二分)
A - Expanding Rods POJ - 1905(二分) 题目 Problem Description When a thin rod of length L is heated n deg ...
最新文章
- 美空管官员:政府停摆致人手不足 危及航空安全
- 神策 FM | 科学创造「高价值」人生,终止“瞎忙”式勤奋
- 瑞星:周末拦截挂马网站数减少 新闻类网站占主打
- MySQL和mq一致性,Mysql与Redis一致性问题
- 腾讯校招历年经典面试汇总:C++研发岗
- 位运算之左移右移运算之详解
- 自学篇之----html的所有input标签 以及post和get提交之间的区别
- 大数据下的供应商评分系统
- key去掉下划线自动大写首字母工具类
- android gprs工作流程,Android pppd_gprs脚本启动过程
- Win 10 Visual Studio 2019 C# .net 5 简繁体转换
- 华为 eNSP 模拟器配置动态路由(ospf)
- 北京“银医一卡通”项目启动
- sql server数据修复语句
- 软件测试-制定测试策略
- 基于ssm高校科研成果管理系统 java ideamysql
- 无监督学习之聚类方法
- 小程序分享功能怎么做_微信电影小程序怎么做?微信电影小程序项目收益图分享...
- 收藏一个网站可以在线生成带图片的二维码
- Windows10连接蓝牙耳机不能用耳机本身麦克风的解决办法
热门文章
- LeetCode 1723. 完成所有工作的最短时间(DFS+剪枝 / 状态压缩DP)
- LeetCode 425. 单词方块(Trie树+DFS)
- LeetCode 1283. 使结果不超过阈值的最小除数(二分查找)
- 文本查询TextQuery类文件编写
- 怎么画韦布尔分布_手机按键寿命测试的样本数量怎么定?一文看懂 简述威布尔分布及其应用...
- 10.数据库中的内置函数
- 小小算法题(CCF)
- mysql 混合模式,SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)
- Python - Excel文件与CSV文件相互转化
- Spring Boot中使用log4j实现http请求日志入mongodb