思路:

f[j]表示当ts的和为j的时候tf的最大值。

这时候要分情况讨论:

(我把状态平移了101000)

若ts[i]>=0倒序循环

否则正序 (防止ts被用了多次)

f[101000]=0;
for(int i=1;i<=n;i++)
if(ts[i]>=0)
for(int j=202000-ts[i];j>=0;j--)
f[j+ts[i]]=max(f[j+ts[i]],f[j]+tf[i]);
else
for(int j=-ts[i];j<=202000;j++)
f[j+ts[i]]=max(f[j+ts[i]],f[j]+tf[i]);
// by SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,ts[105],tf[105],f[202005],ans=0;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&ts[i],&tf[i]);
memset(f,0xcf,sizeof(f));
f[101000]=0;
for(int i=1;i<=n;i++)
if(ts[i]>=0)
for(int j=202000-ts[i];j>=0;j--)
f[j+ts[i]]=max(f[j+ts[i]],f[j]+tf[i]);
else
for(int j=-ts[i];j<=202000;j++)
f[j+ts[i]]=max(f[j+ts[i]],f[j]+tf[i]);
for(int i=101000;i<=202000;i++)
if(f[i]>=0)ans=max(ans,f[i]+i-101000);
printf("%d\n",ans);
}

POJ 2184 DP的更多相关文章

  1. poj 2184 01背包变形【背包dp】

    POJ 2184 Cow Exhibition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14657   Accepte ...

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

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

  3. DP:Cow Exhibition(POJ 2184)(二维问题转01背包)

        牛的展览会 题目大意:Bessie要选一些牛参加展览,这些牛有两个属性,funness和smartness,现在要你求出怎么选,可以使所有牛的smartness和funness的最大,并且这两 ...

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

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

  5. poj 2184(dp变形,进一步加深01背包)

    点击打开链接 题意: 给你n个物品,每个物品都有两个属性,s和f,要求选择一些物品,使sum(s)+sum(f)最大,并且sum(s)>=0&&sum(f)>=0, 根据0 ...

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

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

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

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

  8. POJ 2184(01背包)(负体积)

    http://poj.org/problem?id=2184 http://blog.csdn.net/liuqiyao_01/article/details/8753686 对于负体积问题,可以先定 ...

  9. hdu 1513 && 1159 poj Palindrome (dp, 滚动数组, LCS)

    题目 以前做过的一道题, 今天又加了一种方法 整理了一下..... 题意:给出一个字符串,问要将这个字符串变成回文串要添加最少几个字符. 方法一: 将该字符串与其反转求一次LCS,然后所求就是n减去 ...

随机推荐

  1. Windows挂载NFS目录权限问题

    windows挂载Linux上的NFS后, 可能会出现没有权限打开文件的问题   解决方法: 在注册表中添加匿名用户的默认UID和GID   计算机\HKEY_LOCAL_MACHINE\SOFTWA ...

  2. leetcode 系列文章目录

    leetcode 系列文章目录 0. 两数之和1. 两数相加 2. 无重复字符的最长子串 3. 寻找两个有序数组的中位数 4. 最长回文子串 5. Z 字形变换 6. 整数反转 7. 字符串转换整数 ...

  3. 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)

    题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数 ...

  4. jmeter的认识——线程组的认识

    名称:可以给线程组设置一个个性化的命名 注释:可以对线程组添加备注以标记 在取样器错误后要执行的动作:就是在错误之后要如何执行,可选继续执行后续的.停止执行等. 线程数:就是需要设置多少线程执行测试. ...

  5. (转载)Android项目实战(二十八):Zxing二维码实现及优化

    Android项目实战(二十八):Zxing二维码实现及优化   前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ...

  6. JAVA实现两种方法反转单列表

    /** * @author luochengcheng * 定义一个单链表 */ class Node { //变量 private int record; //指向下一个对象 private Nod ...

  7. C#实现软件监控外部程序运行状态的方法

    本文实例讲述了C#实现软件监控外部程序运行状态的方法.分享给大家供大家参考.具体方法如下: 需要外挂一个程序,用于监控另一个程序运行状态,一旦检测到另一程序关闭,就触发一个事件做其他处理. using ...

  8. day05-2 变量、常量、注释以及内存管理

    目录 什么是变量 Python中定义变量 定义变量名的命名规范 什么是常量 定义常量 注释是什么 注释有什么用 内存管理(重要) 引用计数 垃圾回收机制 小整数池 定义变量的三个特征 什么是变量 变量 ...

  9. BZOJ 2244 [SDOI2011]拦截导弹 (三维偏序CDQ+线段树)

    题目大意: 洛谷传送门 不愧为SDOI的duliu题 第一问?二元组的最长不上升子序列长度?裸的三维偏序问题,直接上$CDQ$ 由于是不上升,需要查询某一范围的最大值,并不是前缀最大值,建议用线段树实 ...

  10. js判断 nan null undefined的方法

    收集资料如下判断: 1.判断undefined: 复制代码代码如下: <span style="font-size: small;">var tmp = undefin ...