题意:

一群奶牛分别有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背包)相关推荐

  1. dp之01背包hdu3466(带限制的,当你所拥有的钱数大于某个限定值时才可以购买该物品)...

    题意:买东西,每个东西有三个特征值,p代表价格,q代表你手中钱必须不低于q才能买这个物品,v代表得到的价值. mark:又是变种01背包,每做一个变种的,就是一种提高.. 按照q - p以由大到小的顺 ...

  2. 【 POJ - 3628 】Bookshelf 2(dfs 或 dp,0-1背包)

    题干: Farmer John recently bought another bookshelf for the cow library, but the shelf is getting fill ...

  3. 【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 ...

  4. 【nyoj-456】 邮票分你一半 (dp,0-1背包的中点问题)

    题干: 邮票分你一半 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明.每张邮票上都有分值,他们想把这些邮票分成两份 ...

  5. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)

    题干: 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负. 输入格式 输入的第一行为n,数对的个数 ...

  6. 【牛客 - 318J】王者荣耀(dp,01背包)

    题干: "无论何时何地,都会遵守约定"."奋力逃吧"."关于取下敌人性命这件事,也从不失约". 小懒虫zmx平时最喜欢玩的游戏就是<王 ...

  7. 【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 ...

  8. 【HDU - 2546】饭卡 (dp,0-1背包,贪心思想)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  9. 【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 ...

最新文章

  1. 论文中的绘图软件大总结 ---自己感想:当你拼命寻找向上的扶梯时,但也要先不让自己恐高
  2. boost::test模块针对模式文件测试单元测试框架报告功能
  3. mysql query browser的使用_影响MySQL性能的配置参数
  4. 程序员如何高效的学习?
  5. 动态HTML处理和机器图像识别
  6. VB版双语对照制作助手的设计与实现
  7. 将自己的dcm数据制作成LUNA16数据集提供数据样式。
  8. linux git 搭建 debian,基于Debian Linux搭建Git服务器
  9. mac 上mysql怎么卸载不了_mac上mysql怎么卸载不了
  10. comsol 4.4 matlab,如何使用COMSOL with MATLAB的清单
  11. 【前端面试之缓存】js本地缓存、浏览器缓存、服务器缓存
  12. NAS与文件系统服务器比较,磁盘阵列与NAS服务器的比较
  13. q-flashplus怎么使用_技嘉主板使用Q-FLASH刷BIOS详解
  14. php环境下,两种汇率接口,已经测试通过
  15. ClickHouse在苏宁用户画像场景的最佳实践
  16. 基于汇编语言实现的贪吃蛇游戏设计
  17. 链安团队漏洞分析连载(第一期)一一溢出漏洞
  18. AlexNet网络介绍
  19. 微软2009年10月MVP(最有价值专家)博客园选区候选人名单
  20. 线性代数笔记11——向量空间

热门文章

  1. 图解 React-router 源码
  2. Semantic Element
  3. 初识 scrapy 框架 - 安装
  4. CSS中!important的使用
  5. oracle的环境配置-基本配置
  6. 理解Linux系统中的load average
  7. 【转】你没有变强是因为你一直很舒服
  8. SharePoint 2010 - 如何导入\导出WebPart
  9. 漫水填充及Photoshop中魔术棒选择工具的实现
  10. 下午去银行办理按揭手续,不得已调休半天