poj3616(LIS简单变式)
题目链接:http://poj.org/problem?id=3616
思路:
我的第一反应是背包,因为每个interval要么选择要么不选,后来发现状态方程很难写出来。后来想一想发现就是LIS的简单变式。先按照starting hours给数据排序,那么选择的顺序也就是排序后的顺序,用dp[i]表示以第i个interval结尾能获得最多的milk,状态转移方程就是dp[i]=max(dp[i],dp[j]+a[i].c)(a[j].e+r<=a[i].s,j<i)。由于上升子序列的长度最长的不一定是milk最多的,所以需要使用LIS的O(n^2)算法。另外记住需要初始化dp,即dp[i]=a[i].c。最后选择最大的dp[i],就是所求答案。
详见代码:
#include<cstdio>
#include<algorithm>
using namespace std; struct node{
int s,e,c;
}a[]; bool cmp(node x,node y){
return x.s<y.s;
}
int n,m,r,res,dp[]; int main(){
scanf("%d%d%d",&n,&m,&r);
for(int i=;i<=m;++i)
scanf("%d%d%d",&a[i].s,&a[i].e,&a[i].c);
sort(a+,a+m+,cmp);
for(int i=;i<=m;++i) dp[i]=a[i].c;
for(int i=;i<=m;++i){
for(int j=i-;j>=;--j)
if(a[j].e+r<=a[i].s)
dp[i]=max(dp[i],dp[j]+a[i].c);
if(dp[i]>res) res=dp[i];
}
printf("%d\n",res);
return ;
}
poj3616(LIS简单变式)的更多相关文章
- NowCoder数列(矩阵快速幂变式)
时间限制 3000 ms 内存限制 32768 KB 代码长度限制 100 KB 题目描述 NowCoder最近在研究一个数列: * F(0) = 7 * F(1) = 11 * F(n) = F(n ...
- Poj 2115 C Looooops(exgcd变式)
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22704 Accepted: 6251 Descripti ...
- 一道令人抓狂的零一背包变式 -- UVA 12563 Jin Ge Jin Qu hao
题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- 变式配置简介 VARIANT CONFIGURATION
变式物料类型KMAT; ITEM CATEGORY GROUP: main item 0002 sub item 0004 strategy group:25 requirement type: ke ...
- SAP会计年度变式
会计年度变式用来确定SAP系统中每个公司的会计记账期间的变式.顾名思议,每个公司的会计年度变式必须与其实际使用的会计年度匹配. 在SAP系统中,每个会计年度最多允许有16个记账期间,其中 ...
- SAP OB52会计年度变式
Var.(Posting Period Variant) 记帐区间变式,每个公司代码对应一个记帐期间变式,多个公司代码可以使用一个相同的记帐期间变式 A(Performance Assistant) ...
- 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)
基于网上网友的代码,自己在单片机上实现, 特此记录分享之. 基于https://blog.csdn.net/yyx112358/article/details/78877523 //使用KEIL C5 ...
- HDU - 1005 -Number Sequence(矩阵快速幂系数变式)
A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) m ...
- 二分查找——没有想象中的容易(详解各种变式,超深度理解,c++)
int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(le ...
随机推荐
- bzoj2263: Pku3889 Fractal Streets
给出两点编号,求如图所示的图中两点间欧氏距离*10取整 递归处理由编号求出坐标 #include<cstdio> #include<cmath> int T,n,s,t; vo ...
- csrf xss sql注入
1.输入框 sql注入 测试直接在输入框输入1' ,看sql会不会拼接出错 xss攻击 csrf攻击 测试直接在输入框输入 <script>alert(123)</script> ...
- C# winfrom ComboBox 调整下拉菜单的高度
1.设置属性 // 1.属性设置 DrawMode ->OwnerDrawVariable this.cboBoxPostID.DrawMode = System.Windows.Forms.D ...
- PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/classname
php利用PHPExcel类导出导入Excel用法 来源: 时间:2013-09-05 19:26:56 阅读数: 分享到: 16 [导读] PHPExcel类是php一个excel表格处理插 ...
- java单机操作redis3.2.10和集群操作增删改查
先直接附上单机版的连接和增删改查,7000-7005是端口号 package com.yilian.util; import java.util.HashMap; import java.util.I ...
- 通过Vim+少量插件配置一个高效简洁的IDE
最近本人在看<TCP/IP Illustrated Volume2:The Implementation>这本书,自然要下载4.4BSD-Lite的源代码配合书本一起研读.以前学习Vim的 ...
- html大小写问题
js中变量名,函数,关键字都区分大小写,如var i;和var I;是两个不同的变量. css中定义的元素名称不区分大小写的. html中,标签和标签属性统一使用小写形式,固有属性也一律使用小写,自定 ...
- ganglia
A.lamp界面快速搭建---------------------------------------------------------------------------------------- ...
- JAVA JDBC 各大数据库的连接字符串和连接类
oracle: driverClass:oracle.jdbc.OracleDriver url:jdbc:oracle:thin:@127.0.0.1:1521:dbname mys ...
- VB6 实现命令行调用时附着到原控制台
Public Declare Function AttachConsole Lib "kernel32.dll" (ByVal ProcessID As Integer) As B ...