题目大意:就是说怎样建道路才使得所建道路最多。任意两天道路不能交叉。

解题思路:因为是按城市按顺序排列。所以我们只需将两个城市序号用结构体存下来。对富人城市排序。

这样就成了一个序列了,这样就成了一个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相关推荐

  1. hdu 1025 Constructing Roads In JGShining's Kingdom(DP + 二分)

    此博客为转发 Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others)    Memory Li ...

  2. HDU 1025 Constructing Roads In JGShining's Kingdom(DP+二分)

    点我看题目 题意 :两条平行线上分别有两种城市的生存,一条线上是贫穷城市,他们每一座城市都刚好只缺乏一种物资,而另一条线上是富有城市,他们每一座城市刚好只富有一种物资,所以要从富有城市出口到贫穷城市, ...

  3. hdu 1025 Constructing Roads In JGShining's Kingdom

    http://acm.hdu.edu.cn/showproblem.php?pid=1025 题意:题目的意思就是有两种城市,穷和富,要富的运到穷的里面问你最多能建几条路. 思路:就是按穷的递增序列来 ...

  4. 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 ...

  5. 【HDU - 1025】Constructing Roads In JGShining's Kingdom(dp最长上升子序列模型 + 二分优化)

    题干: Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit ...

  6. hdu1025 Constructing Roads In JGShining#39;s Kingdom(二分+dp)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1025 Problem ...

  7. hdu1025 Constructing Roads In JGShining#39;s Kingdom (nlogn的LIS)

    题目链接 第一次写nlogn复杂度的LIS,纪念一下. 题目意思是说.有两条平行线.两条平行线都有n个城市,都是从左到右标记为1--n,一条线上是富有城市,一个是贫穷城市.输入n.接下来有n行,p,r ...

  8. HDU1102 Constructing Roads 最小生成树

    点击打开链接 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Ha ...

  9. HDU 1301 Jungle Roads(裸最小生成树)

    题目链接 今天做了好几个模版最小生成树...贴一个kurskral. 1 /* 2 HDU 1301 Jungle Roads 3 最小生成树Kurskal模版 4 */ 5 #include < ...

最新文章

  1. 在leangoo项目里怎么批量导入成员,更改项目成员权限,移除项目成员?
  2. 计算机在识字教学中的应用,【多媒体技术论文】多媒体技术在小学识字教学中的应用(共3090字)...
  3. JAVA实现链表中倒数第K个节点问题(《剑指offer》)
  4. oracle忘记口令
  5. python读文件写文件-python 文件读写操作
  6. 意想不到的有趣linux命令
  7. PHP后台代码解决跨域问题
  8. 混合App开发,HBuilder开发移动App
  9. Universal Link 用企业证书build包,可以通过链接拉起绑定的App(客户端)
  10. 如何在vue中使用阿里图标库
  11. 图(深度优先遍历、广度优先遍历)
  12. Tibco Designer -- 循环遍历
  13. csdn邻家割草_如何维护割草机,使其永远持续(几乎)
  14. 计算机中央的处理器由什么构成,计算机中央处理器CPU的由什么组成
  15. unraid安装黑群晖虚拟机开机显示 Starting Kernel with USB boot
  16. javaScript中console.log()的用法
  17. 湖北文理学院数学与计算机科学学院,以德为本严要求 以勤为先勇创新——记湖北文理学院数学与计算机科学学院执行院长 吴 钊-湖北文理学院校报电子版《湖北文理学院报》...
  18. alibaba/COLA 4.0框架 使用记录
  19. java实现插入排序和希尔排序
  20. 手动实现string类的方法实现

热门文章

  1. java获取客户端硬件信息_java如何获取远程计算机的系统信息,cpu使用情况,磁盘使用情况等等...
  2. sqap不支持python3吗_Supporting Python 3(支持python3)——欢迎来到Python 3
  3. 微信小程序开发分销制度济南_花店微信小程序开发教程
  4. Oracle表里的照片怎么导出来,如何导出oracle数据库中某张表到excel_oracle数据库表格导出到excel...
  5. 基于UC3843的直流高压模块
  6. 2020年春季学期信号与系统课程作业参考答案-第十三次作业
  7. cmd文件打开闪退_批处理闪退、运行中断等问题的处理
  8. 透过率和反射率的关系_光谱仪应用|色彩、透过率等四款测量系统
  9. 通过internet在计算机之间以用户名,第7_8章_计算机网络与internet应用.doc
  10. 学php还是日语,如何使用PHP检查该词是日语还是英文