如果任意两个城市不会发生交叉,那么两座城市在南北两侧的顺序应该是相同的。若给任意一侧的城市按顺序编号,那么要想不出现交叉的现象在另一侧对应城市的编号顺序一定是单调递增或递减的。如此可得,将某一侧城市按顺序编号,只需找到另一侧对应编号的最长上升子序列。

#include<bits/stdc++.h>
using namespace std;typedef pair<int, int> PII;
PII pii[5010];
int dp[5010];int main(){int n;cin>>n;for(int i=1;i<=n;i++){cin>>pii[i].first>>pii[i].second;}sort(pii+1,pii+n+1);int res=0;for(int i=1;i<=n;i++){dp[i]=1;for(int j=1;j<i;j++){if(pii[j].second<pii[i].second){dp[i]=max(dp[i],dp[j]+1);}}res=max(res,dp[i]);}cout<<res;return 0;
}

AcWing 1012. 友好城市(最长上升子序列dp)相关推荐

  1. [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型、较为特殊

    [AcWing] 1012. 友好城市(C++实现)最长上升子序列模型 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总 ...

  2. AcWing 1012 友好城市

    Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的 N NN 个城市. 北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同. 每对友好城市都向政府申请在 ...

  3. Acwing 1012. 友好城市

    题目分析: 最长上升子序列的变形题. 问题描述 Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市. 北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城 ...

  4. Bailian2806 公共子序列【最长公共子序列+DP】

    2806:公共子序列 描述 我们称序列Z = < z1, z2, -, zk >是序列X = < x1, x2, -, xm >的子序列当且仅当存在 严格上升 的序列< ...

  5. NUC1776 Tiling Up Blocks【二维最长上升子序列+DP】

    Tiling Up Blocks 时间限制: 1000ms 内存限制: 10000KB 通过次数: 2总提交次数: 2 问题描述 Michael The Kid receives an interes ...

  6. Vijos P1571 笨笨的导弹攻击【最长上升子序列+DP】

    背景 在那遥远的地方,有个小目标-- 笨笨:导弹准备! 路人甲:(这么小个目标都要欺负--)老大,导弹只有一部分可以用-- 笨笨:不管那么多,有多少就打多少! 描述 为了彻底打击目标,笨笨要使用足够多 ...

  7. Vijos P1303 导弹拦截【最长上升子序列+DP】

    背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题开始训练. 描述 某国为了防御敌国的导弹袭击,研发出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度, ...

  8. HDU1257 最少拦截系统【最长上升子序列+DP】

    问题链接:HDU1257 最少拦截系统. 问题简述:参见上述问题描述. 问题分析:这个问题的本质是求最长上升子序列.与<POJ2533 Longest Ordered Subsequence[最 ...

  9. HDU1087 Super Jumping! Jumping! Jumping!【最长上升子序列+DP】

    问题链接:HDU1087 Super Jumping! Jumping! Jumping!. 问题简述:参见上述问题描述. 问题分析: 这是一个最长上升子序列问题,使用DP算法实现. 定义dp[i]= ...

最新文章

  1. Linux --进程间通信--共享内存
  2. [SCOI2007]蜥蜴 (网格图经典四方向建边)
  3. YOLOv4-5D:一种高效的自动驾驶物体检测器
  4. 数据流中的中位数,我轻敌了
  5. QT通过JavaScript动态创建QML对象
  6. sklearn学习_01
  7. HTML元素的ID和Name属性的区别[转]
  8. python选择题题库for、if_Python题目1:猜年龄(for、if else和where)
  9. php excel 导入大量,用phpExcelReader不能导入大量数据解决办法
  10. 设计模式----简单工厂
  11. 【神经网络算法入门】详细推导全连接神经网络算法及反向传播算法+Python实现代码
  12. Java同步三种实现方式
  13. python爬虫requests设置代理ip_Python爬虫技巧-设置代理IP
  14. 单点登录 Oauth2认证 详解
  15. PIC单片机-Mplab的使用与实践
  16. JAVA打开PDF文件
  17. 超声波传感器(CHx01) 学习笔记 Ⅵ - 原始数据
  18. PS旋转复制方法制作
  19. TS 36.211 V12.0.0-上行(1)-时隙结构和物理资源
  20. C/C++ 获取当前时间(最全方法)

热门文章

  1. 招聘|大型企业紧急招聘 寻找优秀的你
  2. 新人报到 圣诞问候
  3. python 爬虫 使用代理 爬取
  4. 和你一起分析网站 - 之携程(机票价格)
  5. Linux新手学习起步
  6. 达斯延新单曲《知道》正式上线
  7. three.js建立一个可交互的机房机柜
  8. qq好友列表获取之动态爬虫清洗爬取好友列表数据 - 获取qq好友、群、群成员列表
  9. 使用ensp模拟器中的防火墙(USG6000V)配置NAT(网页版)
  10. unity网络实战开发(丛林战争)-正式开发阶段(016-数据库设计以及登录处理)