HDU-1025 Constructing Roads In JGShining's Kingdom
题目大意:就是说怎样建道路才使得所建道路最多。任意两天道路不能交叉。
解题思路:因为是按城市按顺序排列。所以我们只需将两个城市序号用结构体存下来。对富人城市排序。
这样就成了一个序列了,这样就成了一个LIS的裸题了。
ps:1、这题目坑的地方在于输出的地方,讲究英语语法。。。如果一条路输出road,多条输出roads。之前就wa了。
2、网上说用nlogn的算法,也就是查找用二分,但是我并没有用二分也AC了。
AC代码:
1 #include<iostream> 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 using namespace std; 6 struct Node{ 7 int st,en; 8 }a[500050]; 9 int dp[500050]; 10 int mx[500050]; 11 int INF=99999999; 12 bool cmp(Node a,Node b){ 13 return a.st<b.st; 14 } 15 int main(){ 16 int n; 17 int T=1; 18 while(~scanf("%d",&n)){ 19 for(int i=1;i<=n;i++){ 20 scanf("%d%d",&a[i].st,&a[i].en); 21 } 22 sort(a+1,a+n+1,cmp); 23 memset(dp,0,sizeof(dp)); 24 for(int i=0;i<=500050;i++){ 25 mx[i]=INF; 26 } 27 mx[0]=0; 28 int len=0; 29 for(int i=1;i<=n;i++){ 30 for(int j=len;j>=0;j--){ 31 if(a[i].en>mx[j]){ 32 dp[i]=j+1; 33 mx[j+1]=min(a[i].en,mx[j+1]); 34 break; 35 } 36 } 37 len=max(len,dp[i]); 38 } 39 cout<<"Case "<<T++<<':'<<endl; 40 if(len==1)//坑!!! 41 cout<<"My king, at most "<<len<<" road can be built."<<endl<<endl; 42 else 43 cout<<"My king, at most "<<len<<" roads can be built."<<endl<<endl; 44 } 45 return 0; 46 }
转载于:https://www.cnblogs.com/ISGuXing/p/7260211.html
HDU-1025 Constructing Roads In JGShining's Kingdom相关推荐
- hdu 1025 Constructing Roads In JGShining's Kingdom(DP + 二分)
此博客为转发 Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Li ...
- HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)
点我看题目 题意 :两条平行线上分别有两种城市的生存,一条线上是贫穷城市,他们每一座城市都刚好只缺乏一种物资,而另一条线上是富有城市,他们每一座城市刚好只富有一种物资,所以要从富有城市出口到贫穷城市, ...
- hdu 1025 Constructing Roads In JGShining's Kingdom
http://acm.hdu.edu.cn/showproblem.php?pid=1025 题意:题目的意思就是有两种城市,穷和富,要富的运到穷的里面问你最多能建几条路. 思路:就是按穷的递增序列来 ...
- hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1025 View Code 1 #include <iostream> 2 #include&l ...
- 【HDU - 1025】Constructing Roads In JGShining's Kingdom(dp最长上升子序列模型 + 二分优化)
题干: Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit ...
- hdu1025 Constructing Roads In JGShining#39;s Kingdom(二分+dp)
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1025 Problem ...
- hdu1025 Constructing Roads In JGShining#39;s Kingdom (nlogn的LIS)
题目链接 第一次写nlogn复杂度的LIS,纪念一下. 题目意思是说.有两条平行线.两条平行线都有n个城市,都是从左到右标记为1--n,一条线上是富有城市,一个是贫穷城市.输入n.接下来有n行,p,r ...
- HDU1102 Constructing Roads 最小生成树
点击打开链接 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Ha ...
- HDU 1301 Jungle Roads(裸最小生成树)
题目链接 今天做了好几个模版最小生成树...贴一个kurskral. 1 /* 2 HDU 1301 Jungle Roads 3 最小生成树Kurskal模版 4 */ 5 #include < ...
最新文章
- 在leangoo项目里怎么批量导入成员,更改项目成员权限,移除项目成员?
- 计算机在识字教学中的应用,【多媒体技术论文】多媒体技术在小学识字教学中的应用(共3090字)...
- JAVA实现链表中倒数第K个节点问题(《剑指offer》)
- oracle忘记口令
- python读文件写文件-python 文件读写操作
- 意想不到的有趣linux命令
- PHP后台代码解决跨域问题
- 混合App开发,HBuilder开发移动App
- Universal Link 用企业证书build包,可以通过链接拉起绑定的App(客户端)
- 如何在vue中使用阿里图标库
- 图(深度优先遍历、广度优先遍历)
- Tibco Designer -- 循环遍历
- csdn邻家割草_如何维护割草机,使其永远持续(几乎)
- 计算机中央的处理器由什么构成,计算机中央处理器CPU的由什么组成
- unraid安装黑群晖虚拟机开机显示 Starting Kernel with USB boot
- javaScript中console.log()的用法
- 湖北文理学院数学与计算机科学学院,以德为本严要求 以勤为先勇创新——记湖北文理学院数学与计算机科学学院执行院长 吴 钊-湖北文理学院校报电子版《湖北文理学院报》...
- alibaba/COLA 4.0框架 使用记录
- java实现插入排序和希尔排序
- 手动实现string类的方法实现
热门文章
- java获取客户端硬件信息_java如何获取远程计算机的系统信息,cpu使用情况,磁盘使用情况等等...
- sqap不支持python3吗_Supporting Python 3(支持python3)——欢迎来到Python 3
- 微信小程序开发分销制度济南_花店微信小程序开发教程
- Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...
- 基于UC3843的直流高压模块
- 2020年春季学期信号与系统课程作业参考答案-第十三次作业
- cmd文件打开闪退_批处理闪退、运行中断等问题的处理
- 透过率和反射率的关系_光谱仪应用|色彩、透过率等四款测量系统
- 通过internet在计算机之间以用户名,第7_8章_计算机网络与internet应用.doc
- 学php还是日语,如何使用PHP检查该词是日语还是英文