POJ2184 Cow Exhibition(DP:变种01背包)
题意:
一群奶牛分别有s和f两个值,要求选出一些奶牛使s与f的和最大并且s和f分别的和不能为负数。
要点:
用dp[i]=j表示当s的和为i时f的和为j,这样最后只要求dp[i]+i的最大值即可。注意这题因为有负数,所以引入一个偏移量。这里01背包是用一维表示的,所以要根据s[i]的正负分别处理,遍历是倒序还是正序主要考虑子结构不能被先更新。
15913695 | Seasonal | 2184 | Accepted | 1036K | 172MS | C++ | 838B | 2016-08-07 20:47:38 |
#include<iostream>
#include<algorithm>
using namespace std;
const int shift = 1000*100;
const int inf = 0x3f3f3f;int main()
{int dp[2 * shift+105],s[105],f[105];int n,i,j;while (cin >> n){for (i = 0; i < n; i++)cin >> s[i] >> f[i];for (i = 0; i <= 2 * shift + 104; i++)dp[i] = -inf;dp[shift] = 0;for (i = 0; i < n; i++){if (s[i] <= 0 && f[i] <= 0)continue;if (s[i] >= 0){for (j = 2 * shift; j >= s[i]; j--)if (dp[j - s[i]] > -inf)dp[j] = max(dp[j], dp[j - s[i]] + f[i]);//因为j-s[i]<j所以为了保证这里的j-s[i]是上一次的值要倒序遍历}else{for (j = s[i]; j <= 2 * shift+s[i]; j++)if (dp[j - s[i]] > -inf)dp[j] = max(dp[j], dp[j - s[i]] + f[i]);//因为j-s[i]>j所以为了保证这里的j-s[i]是上一次的值,不能被更新,要正序遍历}}int ans = -inf;for (i = shift; i <= 2 * shift+100; i++)if(dp[i]>=0)ans = max(ans, dp[i]+i-shift);cout << ans << endl;}return 0;
}
转载于:https://www.cnblogs.com/seasonal/p/10343705.html
POJ2184 Cow Exhibition(DP:变种01背包)相关推荐
- dp之01背包hdu3466(带限制的,当你所拥有的钱数大于某个限定值时才可以购买该物品)...
题意:买东西,每个东西有三个特征值,p代表价格,q代表你手中钱必须不低于q才能买这个物品,v代表得到的价值. mark:又是变种01背包,每做一个变种的,就是一种提高.. 按照q - p以由大到小的顺 ...
- 【 POJ - 3628 】Bookshelf 2(dfs 或 dp,0-1背包)
题干: Farmer John recently bought another bookshelf for the cow library, but the shelf is getting fill ...
- 【POJ - 3211】Washing Clothes (dp,0-1背包中点问题)
题干: Dearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a beautif ...
- 【nyoj-456】 邮票分你一半 (dp,0-1背包的中点问题)
题干: 邮票分你一半 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明.每张邮票上都有分值,他们想把这些邮票分成两份 ...
- 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)
题干: 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负. 输入格式 输入的第一行为n,数对的个数 ...
- 【牛客 - 318J】王者荣耀(dp,01背包)
题干: "无论何时何地,都会遵守约定"."奋力逃吧"."关于取下敌人性命这件事,也从不失约". 小懒虫zmx平时最喜欢玩的游戏就是<王 ...
- 【UVA - 10154 】Weights and Measures (贪心排序,dp,类似0-1背包,状态设定思维)
题干: The Problem Mack, in an effort to avoid being cracked, has enlisted your advice as to the order ...
- 【HDU - 2546】饭卡 (dp,0-1背包,贪心思想)
电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...
- 【POJ - 3624 】Charm Bracelet (dp,0-1背包裸题)
题干: Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to ...
最新文章
- 论文中的绘图软件大总结 ---自己感想:当你拼命寻找向上的扶梯时,但也要先不让自己恐高
- boost::test模块针对模式文件测试单元测试框架报告功能
- mysql query browser的使用_影响MySQL性能的配置参数
- 程序员如何高效的学习?
- 动态HTML处理和机器图像识别
- VB版双语对照制作助手的设计与实现
- 将自己的dcm数据制作成LUNA16数据集提供数据样式。
- linux git 搭建 debian,基于Debian Linux搭建Git服务器
- mac 上mysql怎么卸载不了_mac上mysql怎么卸载不了
- comsol 4.4 matlab,如何使用COMSOL with MATLAB的清单
- 【前端面试之缓存】js本地缓存、浏览器缓存、服务器缓存
- NAS与文件系统服务器比较,磁盘阵列与NAS服务器的比较
- q-flashplus怎么使用_技嘉主板使用Q-FLASH刷BIOS详解
- php环境下,两种汇率接口,已经测试通过
- ClickHouse在苏宁用户画像场景的最佳实践
- 基于汇编语言实现的贪吃蛇游戏设计
- 链安团队漏洞分析连载(第一期)一一溢出漏洞
- AlexNet网络介绍
- 微软2009年10月MVP(最有价值专家)博客园选区候选人名单
- 线性代数笔记11——向量空间