题意:有n件事。每件事若发生有两种情况。添加RP为a,可是收益会降低c;降低R为a,收益会添加c。

每件事可以发生的前提是小于等于或者大于等于门限值b。求最大收益。

分析:这题我没找到状态,所以就不会了。

又陷入了固定思维,用每件事来作为状态,然后发现找不到转移方程。

应该用RP值来作为状态,状态转移就是从满足门限的RP区间的状态转移到当前状态。

dp[k]表示RP值为k时的最大收益,方程:dp[i]=max(dp[i+a]。dp[i]+c)。

这个方程是在一个循环里求的,循环是用来遍历满足门限的RP区间。所以还要定义变量l。r来标示区间。

另外,这题另一个要做的处理,RP可能为负值,数组下标不能为负,又由于最大的RP总和是10000。所以RP总体向右移10000。

代码:

#include<iostream>
#define INF 10000007
using namespace std;
int t,n,a,b,c;
int dp[20005];//由于总体移动了10000,也就是零点移动到了10000。所以数组大小为20000
int max(int i,int j)
{
return i>j?i:j;
}
int main()
{
cin>>t;
while(t--){
cin>>n;
for(int i=0;i<20006;i++) dp[i]=-INF;
dp[10000]=0;
int l=10000,r=10000;
while(n--){
cin>>a>>b>>c;
b+=10000;
if(a<0){
for(int i=b;i<=r;i++)
dp[i+a]=max(dp[i+a],dp[i]+c);
l+=a;
}
else{
for(int i=b;i>=l;i--)
dp[i+a]=max(dp[i+a],dp[i]+c);
r+=a;
}
}
int ans=-INF;
for(int i=l;i<=r;i++) ans=max(ans,dp[i]);
cout<<ans<<endl;
}
}

!HDU 1574 RP-dp-(重点在状态确定)的更多相关文章

  1. hdu 1574 RP问题 01背包的变形

    hdu 1574 RP问题 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1574 分析:01背包的变形. RP可能为负,所以这里分两种情况处理一下就好 ...

  2. HDU 1574 RP问题 (dp)

    题目链接 Problem Description 在人类社会中,任何个体都具有人品,人品有各种不同的形式,可以从一种形式转换为另一种形式,从一个个体传递给另一个个体,在转换和传递的过程中,人品不会消失 ...

  3. HDU 1574 RP问题

    如果说难的话,难就难在对阶段的划分. 这又是一道对值域空间进行分段的题目. 因为rp有正有负,所以将整个数组向右平移10000个单位长度 l和r分别是rp可能的最小值 因为b是“门槛”,所以如果 发生 ...

  4. hdu 4057 AC自己主动机+状态压缩dp

    http://acm.hdu.edu.cn/showproblem.php?pid=4057 Problem Description Dr. X is a biologist, who likes r ...

  5. hdu 4352 数位dp + 状态压缩

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. hdu 1565 方格取数(1) 状态压缩dp

    方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  7. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

  8. DP大作战—状态压缩dp

    题目描述 阿姆斯特朗回旋加速式阿姆斯特朗炮是一种非常厉害的武器,这种武器可以毁灭自身同行同列两个单位范围内的所有其他单位(其实就是十字型),听起来比红警里面的法国巨炮可是厉害多了.现在,零崎要在地图上 ...

  9. HDU 4599 概率DP

    先推出F(n)的公式: 设dp[i]为已经投出连续i个相同的点数平均还要都多少次才能到达目标状态. 则有递推式dp[i] = 1/6*(1+dp[i+1]) + 5/6*(1+dp[1]).考虑当前这 ...

随机推荐

  1. 《转》MySQL 5.7版本新特性连载

    MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来 ...

  2. jQuery中的CSS(二)

    一:获取样式和设置样式

  3. SpringMVC后台token防重复提交解决方案

    本文介绍如何使用token来防止前端重复提交的问题. 目录 1.思路 2.拦截器源码实现 3.注解源码 4.拦截器的配置 5.使用指南 6.结语 思路 1.添加拦截器,拦截需要防重复提交的请求 2.通 ...

  4. Ckeditor一种很方便的文本编辑器

    ckeditor官网:http://ckeditor.com/ 这里介绍ckeditor的其中一个的用法,自己做小项目练手非常的适合,上手非常的快. 首先去官网下载这个东西,链接:http://pan ...

  5. HTML5游戏 围住神经猫 开发

    所有文章搬运自我的个人主页:sheilasun.me 去年风靡微信朋友圈的小游戏"围住神经猫",我也试着做了一下,可以戳这里试玩→围住神经猫.游戏是用Egret引擎开发的,因为Eg ...

  6. ubuntu的常用liunx命令

    一.基本命令 1.查看Ubuntu版本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Descriptio ...

  7. 小程序的POST接收不到参数

    这个文档上没有详细说明 在用POST的时候 header要这样写... method:"POST", header: { "Content-Type": &qu ...

  8. 转 关于Https协议中的ssl加密解密流程

    关于Https协议中的ssl加密解密流程 2016年09月28日 09:51:15 阅读数:14809 转载自:http://www.cnblogs.com/P_Chou/archive/2010/1 ...

  9. BZOJ3091 城市旅行 LCT

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3091 题意概括 鉴于本人语文不好,此题的描述原题很清晰,废话不多,请看原题. 可怕,原题是图片,不 ...

  10. POJ - 1266 -

    题目大意:给出一条圆弧上的两个端点A,B,和圆弧上两端点之间的一个点C,现在要用一块各个定点的坐标均为整数的矩形去覆盖这个圆弧,要求最小的矩形面积. 思路:叉积在本体发挥很强大的作用.首先求出三个点所 ...