POJ2184 Cow Exhibition(DP:变种01背包)

题意:

一群奶牛分别有s和f两个值,要求选出一些奶牛使s与f的和最大并且s和f分别的和不能为负数。

要点:

用dp[i]=j表示当s的和为i时f的和为j,这样最后只要求dp[i]+i的最大值即可。注意这题因为有负数,所以引入一个偏移量。这里01背包是用一维表示的,所以要根据s[i]的正负分别处理,遍历是倒序还是正序主要考虑子结构不能被先更新。

15913695Seasonal2184Accepted1036K172MSC++838B2016-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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP命令注入***

PHP命令注入***漏洞是PHP应用程序中常见的脚本漏洞之一&#xff0c;国内著名的Web应用程序Discuz!、DedeCMS等都曾经存在过该类型漏洞。本文描述了常见的PHP命令注入***漏洞存在形式和利用方法&#xff0c;结合漏洞实例进行分析和漏洞利用&#xff0c;并针对如何防范PHP命令注入…

Vim文本编辑器 指令大全(二)

经常处理文本以及经常需要写代码的人&#xff0c;都会有自己比较常用的编辑器&#xff0c;本人喜欢用Vim&#xff0c;理由就是Vim编辑器灵活&#xff0c;并且可以达到纯键盘操作&#xff0c;使用纯熟情况下&#xff0c;根本不需要鼠标操作&#xff0c;听起来是不是很酷的&#…

电脑用户名_仁霸下料优化软件如何找回密码、更换绑定电脑?

今天有客户来找我们管件管家&#xff0c;说注册密码忘记了&#xff0c;登陆不上软件问怎么找回&#xff1b;还有个用户因为换了电脑&#xff0c;需要将账号移到新电脑上。此前我们以玻璃软件为例说了如何下载以及在哪里找到下载文件的位置&#xff0c;这期还是以玻璃软件为例讲…

linux之universal usb installer安装ubuntu

Universal-USB-Installer这个工具是用来制作U盘启动盘的&#xff0c;下面以制作Ubuntu版本Linux系统的U盘启动盘为例&#xff0c;方法如下&#xff1a; 1、安装Universal USB Installer软件&#xff0c;打开后&#xff0c;点击“Browse”按钮浏览下载到本地磁盘的Ubuntu系统ISO…

Android系统的体系结构、开发语言及源码结构

整理自android系统体系结构 Android 是google公司针对手机开发的一个平台&#xff0c;并公布了其中大部分代码&#xff0c;其大部分应用程序都是用JAVA开发的&#xff0c;毕竟它是商业性的产品嘛&#xff0c;有所保留也是理所 当然的。对于搞嵌入式linux开发的人来说我们可以从…

Blazor系列终结!

终于完结Blazor系列转载终结啦&#xff0c;其实站长在25号时就已完成转载&#xff0c;并同步在Dotnet9网站&#xff08;https://dotnet9.com&#xff09;发布&#xff0c;并创建了一个专辑《大家一起学Blazor》&#xff0c;大家可随时在网站浏览。Dotnet9网站同步转载感受 ASP.…

Mysql安装及自动化部署脚本方案

一.简介 数据库&#xff08;Database&#xff09;是按照数据结构来组织、存储和管理数据的仓库&#xff0c; 每个数据库都有一个或多个不同的API用于创建&#xff0c;访问&#xff0c;管理&#xff0c;搜索和复制所保存的数据。 我们也可以将数据存储在文件中&#xff0c;但是在…

男人对待恋爱的不同阶段......

1 小猫咪为何那样恨我&#xff08;via.豆瓣哈组&#xff0c;侵删&#xff09;▼2 驾驶位上方的扶手有什么用&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 回村听到最劲爆的消息&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 男人对待恋…

PPT快捷键大全(作分析报告的人有福了)

AltF9 隐藏参考线 ctrl[ 缩小字号 ctrl] 增大字号 ctrlz 撤销 ctrly 撤销的反向动作 ctrld 快速复制 CTRLG 组合 A 在放映时&#xff0c;隐藏/显示鼠标箭头 AltG 切换到“设计”功能选项卡中 AltH 切换到“开始”功能选项卡中 AltK …

用递归方式实现二叉树先序、中序、后序遍历

先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 5 6 7 package com.sangfor.tree;public class Node {public int value;public Node left;public Node right;public Node(int value) {this.value = value;} } pac…

2个网页跳来跳去_好人网页同步器,使用教程

好人网页同步器&#xff0c;点我下载软件作用&#xff1a;操作N个浏览器&#xff0c;且动作同步操作。软件操作流程&#xff1a;1、打开软件&#xff0c;点击注册账号&#xff0c;系统就算1小时测试时间给你。然后用你的账号登录到好人网页同步器。2、进入主界面后&#xff0c;…

2013阿里笔试题

2013阿里巴巴暑期实习笔试 答题说明&#xff1a; 1.答题时间90分钟&#xff0c;请注意把握时间; 2.试题分为四个部分&#xff1a;单项选择题(10题&#xff0c;20分)、不定向选择题(4题&#xff0c;20分)、填空问答(5题&#xff0c;40分)、综合体(1题&#xff0c;20分); 3.其他一…

如何提升 Kestrel 上传文件的大小限制?

咨询区 ToddBFisher我的程序是 ASP.NET Core WebApp,我希望上传一个大的文件&#xff0c;我知道在 IIS 中可以轻松的在 web.config 中做如下配置即可&#xff0c;参考如下代码&#xff1a;<system.webServer><security><requestFiltering><!--<request…

2014.7.11

技术&#xff1a; 了解jqzoom 英语&#xff1a; autism转载于:https://www.cnblogs.com/glasscat/p/3840140.html

Wpf控件ListBox使用实例2

2.Xaml绑定选择结果 <StackPanel Orientation"Vertical"><TextBlock Margin"10,10,10,10" FontWeight"Bold"> Pick a color from below list</TextBlock><ListBox Name"mcListBox" Height"100" Width…

FBI承认特斯拉是外星人?公开354页文件,揭秘特斯拉研究UFO,制造“死光武器”.........

全世界只有3.14 % 的人关注了爆炸吧知识作业太少吃得太饱特斯拉是外星人吗&#xff1f;偶然点开这个问题&#xff0c;让超模君震惊得心律不齐。作为人类有史以来最伟大的科学家之一&#xff0c;特斯拉一度被称为“最接近神的人”。但估计特斯拉本人也没有想到&#xff0c;在他长…

用非递归方式实现二叉树先序便利

先序遍历:中、左、右 中序遍历:左、中、右 后序遍历:左、右、中 比如下面这科树 1 2 3 4 5 6 7 package com.sangfor.tree; public class Node { public int value; public Node left; public Node right; public Node(int value) { this.value = val…

人生133个规则,能领悟多少算多少!!!看自己的造化!!!

1、人之所以痛苦&#xff0c;在于追求错误的东西。 2、与其说是别人让你痛苦&#xff0c;不如说自己的修养不够。 3、如果你不给自己烦恼&#xff0c;别人也永远不可能给你烦恼。 4、好好的管教你自己&#xff0c;不要管别人。 5、你永远要感谢在你逆境时给你帮助的人。 6、你永…

操作主机 RID matser

一个以活动目录为核心的基础架构管理环境运行效率的高低取决于操作主机和DC的位置的设计&#xff0c;在后期域环境的维护工作中也起着非常重要的作用。今天跟大家介绍在 Active Directory 中&#xff0c;RID Master &#xff08;RID主机&#xff09;的相关设定和所负责的功能。…