HDU 6249 Alice’s Stamps(dp)
http://acm.hdu.edu.cn/showproblem.php?pid=6249
题意:
给出n个区间,求选k个区间的最大区间并。
思路:
可能存在左端点相同的多个区间,那么此时我们肯定选右端点最大的那个区间。现在将区间按左端点排序,d[i][j]表示在1~i坐标轴范围内选择j个区间的最大区间并。
状态转移方程如下:
dp[i+1][j] = max(dp[i][j],dp[i+1][j]); //不选的话就和上一个一样 dp[i+num][j+1] = max(dp[i][j]+num,dp[i+num][j+1]); //选择
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<queue> 6 using namespace std; 7 const int maxn = 2000+5; 8 9 int n,m,k; 10 int dp[maxn][maxn]; 11 12 struct node 13 { 14 int l,r; 15 bool operator< (const node& rhs) const 16 { 17 return l<rhs.l; 18 } 19 }s[maxn]; 20 21 int main() 22 { 23 //freopen("in.txt","r",stdin); 24 int T; 25 int kase = 0; 26 scanf("%d",&T); 27 while(T--) 28 { 29 scanf("%d%d%d",&n,&m,&k); 30 for(int i=1;i<=m;i++) 31 scanf("%d%d",&s[i].l,&s[i].r); 32 memset(dp,0,sizeof(dp)); 33 sort(s+1,s+m+1); 34 int pos = 1, num = 0; 35 for(int i=0;i<n;i++) 36 { 37 while(pos<=m && s[pos].l==i+1) 38 { 39 num = max(num, s[pos].r - s[pos].l + 1); 40 pos++; 41 } 42 43 for(int j=0;j<=k;j++) 44 { 45 dp[i+1][j] = max(dp[i][j],dp[i+1][j]); 46 dp[i+num][j+1] = max(dp[i][j]+num,dp[i+num][j+1]); 47 } 48 if(num) num--; //因为左端点右移了一位,所以这里需要 49 } 50 printf("Case #%d: ",++kase); 51 printf("%d\n",dp[n][k]); 52 } 53 return 0; 54 }
转载于:https://www.cnblogs.com/zyb993963526/p/8120240.html
HDU 6249 Alice’s Stamps(dp)相关推荐
- HDU 2639 Bone Collector II (dp)
题目链接 Problem Description The title of this problem is familiar,isn't it?yeah,if you had took part in ...
- HDU 4562 守护雅典娜(dp)
守护雅典娜 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...
- HDU 6446 Tree and Permutation (dp)
题意:给出一颗树,按节点进行全排列,给你一棵树,以全排列的第一个树为根节点,求出根节点到其他点的最短路径之和,把这些和在相加,求最后结果 分析:对于每一条边都经过了 2*(n-1)!次,用dp算出这棵 ...
- USACO / Stamps(DP)
描述 已知一个 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K -- 表示信封上能够贴 K 张邮票.计算从 1 到 M 的最大连续可贴出的邮资. 例如,假设有 1 分和 3 分的邮票:你 ...
- 【HDU - 2089 】不要62 (dp)
题干: 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客 ...
- HDU 5230 ZCC loves hacking(DP)
Problem Description Now, a Codefires round is coming to end. ZCC has got C(0≤C≤106) points by solvin ...
- *【HDU - 5707】Combine String(dp)
题干: Given three strings aa, bb and cc, your mission is to check whether cc is the combine string of ...
- HDU 4111 Alice and Bob (博弈)11年成都现场赛
转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 可惜没有机会去现场做,不过当时肯定 ...
- hdu 1257 最少拦截系统 (DP)
点击打开链接 #include"stdio.h" int main() {int a[10011],b[10011];int i,j,c,n;while(scanf("% ...
最新文章
- python生成时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例
- LibreOffice 3.6.6 修复了 50 个 Bug
- 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...
- spring系列-注解驱动原理及源码-bean组件注册
- servlet——web应用中路径问题
- windows PHP Cli模式下配置
- 修复./mysql/proc
- 5.MongoDB索引
- servlet 规范_Tomcat原理解析(壹)— Servlet
- 这是我用Microsoft Word 2010 直接发布的测试用博客
- Column name pattern can not be NULL or empty.
- Mybatis 单独项目
- HDU6064 Besttheorem
- Hadoop AWS Word Count 样例
- 计算机主板时钟,电脑主板时钟电路工作原理
- 洛谷P3332 K大数查询
- mysql with,mysql+with
- 单片机P0口的AD0-7是什么意思
- 美国国家标准与技术研究院(NIST)
- angular基础创建组件报错Is it missing an @NgModule annotation
热门文章
- break与continue的的用法以及区别
- [Qt教程] 第16篇 2D绘图(六)坐标系统
- php的工作流程是什么,工作流程 · PHP-ML中文文档 · 看云
- 求杨辉三角的前n行数据_LeetCode算法第118题:杨辉三角
- python如何模拟键盘输入_python实现键盘输入的实操方法
- 【汇编语言(第3版)王爽】第八章学习内容
- 每天一道LeetCode-----计算直方图中最大矩形的面积
- 锐浪报表 多条数据集合到一个二维码中_【小麦课堂】快速查询明细数据的操作...
- 我的世界1.13的服务器网站,我的世界1.13纯净版
- java中ftp删除文件,Java 实现ftp 文件上传、下载和删除