题意:


思路:
用vector存上本出发点能到的地方&成本&有趣指数(用结构体保存)
然后DP就好了
f[i][j]表示到了i 成本为j的有趣指数最大是多少
f[vec[i][k].end][j+vec[i][k].c]=max(f[vec[i][k].end][j+vec[i][k].c],f[i][j]+vec[i][k].f);

//By SiriusRen
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int l,n,b,f[1005][1005],ans;
struct Node{int f,c,start,end;}node[10005];
vector<Node>vec[1005];
int main(){scanf("%d%d%d",&l,&n,&b);for(int i=1;i<=n;i++){scanf("%d%d%d%d",&node[i].start,&node[i].end,&node[i].f,&node[i].c);node[i].end+=node[i].start;vec[node[i].start].push_back(node[i]);}f[0][0]=1;for(int i=0;i<=l;i++){for(int j=b;j>=0;j--){if(!f[i][j])continue;for(int k=0;k<vec[i].size();k++){if(j+vec[i][k].c>b||!f[i][j])continue;f[vec[i][k].end][j+vec[i][k].c]=max(f[vec[i][k].end][j+vec[i][k].c],f[i][j]+vec[i][k].f);}}}for(int i=0;i<=b;i++)ans=max(ans,f[l][i]);if(!ans)puts("-1");else printf("%d\n",ans-1);
}

转载于:https://www.cnblogs.com/SiriusRen/p/6532230.html

POJ 3257 DP相关推荐

  1. poj 3257(哈希+二维dp)

    题意:要连出一个从1-L的过山车线,给出n段可选的建设方案.每段都有起始位置,终止位置,代价,和乐趣程度.要实现1-L的长度中,相邻两端要首尾相连,总建设代价控制在B之内,问最多能获得多少乐趣程度. ...

  2. POJ 3017 DP + 单调队列 + 堆

    题意:给你一个长度为n的数列,你需要把这个数列分成几段,每段的和不超过m,问各段的最大值之和的最小值是多少? 思路:dp方程如下:设dp[i]为把前i个数分成合法的若干段最大值的最小值是多少.dp转移 ...

  3. POJ 1159 (DP)

    题目:http://poj.org/problem?id=1159 思路: 找出原串的最长回文子串,当然这里说的回文子串可以不连续.用原串的长度减去最长回文子串的长度即可得出结果. 设原串a[5001 ...

  4. POJ 1037 DP

    题目链接: http://poj.org/problem?id=1037 分析: 很有分量的一道DP题!!! (参考于:http://blog.csdn.net/sj13051180/article/ ...

  5. POJ 1661 DP

    Help Jimmy Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11071   Accepted: 3607 Descr ...

  6. POJ 3666 dp

    题意 传送门 POJ 3666 基本思路是对 N 个位置枚举所有可能高度,并 dp 求最大值.可能高度取 N 个位置的高度即可,排序以方便顺序 dp.对于升序的情况 dp[i][j]=max{dp[i ...

  7. POJ 3666(DP)

    题目链接:http://poj.org/problem?id=3666 题目大意:给一个串,要求修改最少使得串满足非递增或非递减 题目思路:刚开始没想到,后来经学长提醒如果串里的数字变1000可以怎么 ...

  8. poj 2392 dp 不是很懂哎!!!Space Elevator

    大意:有K种block去建塔,每种每个都有一个高度H,用了当前的block塔的高度不能超出a,和每种的数量.求塔最高能建多高. 分析:这题就是一个多重背包,但有一点变动,必须先以a从小到大排序,因为如 ...

  9. poj 2346(DP)

     题意:n位数,满足前n/2个数字之和同后n/2个数字之和相同的数一共有多少个? 解题思路:dp[i][j]表示前i个数的和为j时,有多少个: 递推关系:dp[i][j] += dp[i-1][k ...

最新文章

  1. 【迁移学习(Transfer L)全面指南】零次学习(Zero-Shot Learning)入门
  2. 随笔 —— 当下不晚
  3. ptmalloc内存分配释放
  4. Windows下 Apache+PHP5+MYSQL5+phpmyadmin 规范安装
  5. android陀螺仪测试工具,修改安卓陀螺仪和加速度计的sensor抽象层HAL
  6. 通信工程制图期末考试大纲
  7. 给定一个排序后的数组,包含n个整数,但这个数组已被旋转过多次,找出数组中的某个元素...
  8. Skype现已支持开源VP8视频编解码器
  9. 在ubuntu里烧win10安装盘
  10. 电脑格式化的危害_防止硬盘被格式化的六大方法
  11. vs怎么把文字超链接_「Excel技巧」Excel表格如何制作带超链接的导航目录
  12. 进入大厂的面试经验详细总结(P7 拿 offer)
  13. java图的邻接表实现两种方式及实例应用分析
  14. 最新手机号段归属地数据库(2018年4月)
  15. QCC512x QCC302x Earbud 工程增加三击事件
  16. 利用模版元编程将传统冒泡排序性能提升两倍以上
  17. 大数据之Atlas元数据管理
  18. 《西瓜书》笔记整理——第一章
  19. Python - openpyxl Excel 操作示例与实践
  20. sqlserver 查询记录数 查系统表秒出

热门文章

  1. Redis事件驱动库转
  2. 图文详解Silverlight访问MSSQL数据库
  3. VUE中让由全局变量添加生成的新数组不随全局变量的变化而变化
  4. leetcode-79-单词搜索(用dfs解决)
  5. OpenGL ES 的例子
  6. Python 基础三:基础数据类型和字符串的常用函数操作
  7. 使项目持续集成支持Carthage管理
  8. 大型分布式网站架构设计与实践 笔记
  9. 页面滚动动态加载数据,页面下拉自动加载内容
  10. CentOS系统启动流程