poj2184:http://poj.org/problem?id=2184

题意:给你n头牛,每头牛有一个S值和一个F值,现在的问题是,要你选出其中的一些牛求出S+T的最大值。但是要保证总的s>=0和F>=0
题解:可以把s作为体积,然后利用0,1背包。求出每个s做对应的最大的F值,然后for一遍,求出最大的f+s。因为有负的值出现,所以把 背包的容量加上一个100000;因为过程中s的值可以是小于0的,for的时候从100000开始即可,不是很好理解。

 #include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
const int MAXN=;
int dp[];
int value[MAXN];
int weight[MAXN];
int nKind;
int main()
{
int k=;
while(scanf("%d",&nKind)!=EOF){
for(int i=;i<nKind;i++){
scanf("%d%d",&value[i],&weight[i]);
}
for(int i=;i<=;i++)dp[i]=-INF;
dp[k]=;
for(int i=;i<nKind;i++){
if(value[i]>)//正的是逆序
{
for(int j=;j>=value[i];j--)//注意范围
if(dp[j-value[i]]>-INF)
dp[j]=max(dp[j],dp[j-value[i]]+weight[i]);
}
else//负的是顺序
{
for(int j=;j<=+value[i];j++)//注意范围
if(dp[j-value[i]]>-INF)
dp[j]=max(dp[j],dp[j-value[i]]+weight[i]);
}
}
int ans=;
for(int i=;i<=;i++)
if(dp[i]>=&&dp[i]+i->ans)
ans=dp[i]+i-;
printf("%d\n",ans);
}
return ;
}

Cow Exhibition的更多相关文章

  1. POJ2184 Cow Exhibition[DP 状态负值]

    Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12420   Accepted: 4964 D ...

  2. [POJ 2184]--Cow Exhibition(0-1背包变形)

    题目链接:http://poj.org/problem?id=2184 Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  3. Cow Exhibition 变种背包

    Cow Exhibition Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Subm ...

  4. POJ-2184 Cow Exhibition(01背包变形)

    Cow Exhibition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10949 Accepted: 4344 Descr ...

  5. POJ 2184 Cow Exhibition【01背包+负数(经典)】

    POJ-2184 [题意]: 有n头牛,每头牛有自己的聪明值和幽默值,选出几头牛使得选出牛的聪明值总和大于0.幽默值总和大于0,求聪明值和幽默值总和相加最大为多少. [分析]:变种的01背包,可以把幽 ...

  6. POJ 2184 Cow Exhibition (01背包变形)(或者搜索)

    Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10342   Accepted: 4048 D ...

  7. poj 2184 Cow Exhibition(01背包)

    Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10882   Accepted: 4309 D ...

  8. (01背包变形) Cow Exhibition (poj 2184)

    http://poj.org/problem?id=2184   Description "Fat and docile, big and dumb, they look so stupid ...

  9. poj 2184 Cow Exhibition(dp之01背包变形)

    Description "Fat and docile, big and dumb, they look so stupid, they aren't much fun..." - ...

  10. poj2184 Cow Exhibition(p-01背包的灵活运用)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:id=2184">http://poj.org/problem?id=2184 Descrip ...

随机推荐

  1. 在C#中使用InputBox

    以前用VB编程常用InputBox,现在学了C#,竟然找不到它了--后来到网上查到了,现在贡献给大家:1.首先要添加引用Microsoft.VisualBasic2.命名空间 Using Micros ...

  2. 内部开发环境 git代码托管说明

    前言 随着员工的增加 代码的开发版本管理 提上了日程.初步计划: 1 一台机器 192.168.1.240 git代码版本管理 2 运行环境 192.168.1.241 内部开发运行环境 软件工程师 ...

  3. php 总结

    1.安装完apache之后 2.有一个目录 htdocs 下面就是根目录了 3.测试一下,新建一个index.html 写入 it works  .输入localhost 看是否显示 it works ...

  4. 观察者模式在ng(Angular)中的应用

    在这个前端框架满天飞的天下,angular MVVM 的模式确实火了一把,所以最近一直在学习ng,感悟颇多,填坑无数,今天终静下心来打算更新自己久未变动的博客,做一做总结. 1.在ng中的观察者模式: ...

  5. Map的迭代操作

    Map的迭代操作 public static void main(String[] args) { Map<String, List<Integer>> map = new H ...

  6. sqlite使用blob类型存储/访问 结构体

    /* open fire host and slora report data database */ int open_report_db(void) { ; char sql[SQL_COMMAN ...

  7. PRD产品需求文档概要

    PRD概念 PRM就是Product Requirements Document的简称,也就是产品需求模型.一般来说一个产品会伴随有市场需求文档(Market Requirements Documen ...

  8. WPF RichTextBox滚动条自动滚动实例、文本自动滚动实例

    说明:1.后台代码添加测试 数据 2.使用 richTextBox.ScrollToVerticalOffset()方法,滚动竖直方向滚动条位置 3.使用定时器DispatcherTimer,修改页面 ...

  9. Sql2008中使用DataTable作为存储过程的参数

    使用DataTable作为存储过程的参数   最近工作中写了几个存储过 程,需要向存储过程中传递字符串,因为SQL Server 2000中没有内置类似于 split 的函数,只好自己处理,将前台数据 ...

  10. SQL server 如何附加、还原、分离、备份数据库文件

    No1 : 附加 No2 : 还原            一.(需要 .bak文件)首先建立一个数据库,数据库名称与你的.bak文件名要相同. 当然.这时候的这个数据库还是空的,需要还原回去数据.右键 ...