题目描述

有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的$N$个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免事故。编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航道不相交的情况下,被批准的申请尽量多。

输入格式

第1行,一个整数$N$,表示城市数。

第2行到第$N+1$行,每行两个整数,中间用一个空格隔开,分别表示南岸和北岸的一对友好城市的坐标。

输出格式

仅一行,输出一个整数,表示政府所能批准的最多申请数。

样例数据

输入

7
22 4
2 6
10 3
15 12
9 8
17 17
4 2

输出

4

分析

将一侧河岸的城市坐标有小到大进行排序,若其友好城市坐标是递增的,则其航道必定不相交。要求最多申请数即可转化为最长不下降子序列

代码

#include <bits/stdc++.h>

#define Enter puts("")
#define Space putchar(' ') using namespace std; typedef long long ll;
typedef double Db; inline ll Read()
{
ll Ans = 0;
char Ch = getchar() , Las = ' ';
while(!isdigit(Ch))
{
Las = Ch;
Ch = getchar();
}
while(isdigit(Ch))
{
Ans = (Ans << 3) + (Ans << 1) + Ch - '0';
Ch = getchar();
}
if(Las == '-')
Ans = -Ans;
return Ans;
} inline void Write(ll x)
{
if(x < 0)
{
x = -x;
putchar('-');
}
if(x >= 10)
Write(x / 10);
putchar(x % 10 + '0');
} struct N
{
int South , North;
}a[100001]; inline bool Cmp(N x , N y)
{
return x.South < y.South;
} int Dp[100001];
int Maxn = -9999999; int main()
{
int n;
n = Read();
for(int i = 1; i <= n; i++)
{
a[i].South = Read();
a[i].North = Read();
Dp[i] = 1;
}
sort(a + 1 , a + n + 1 , Cmp);
for(int i = 2; i <= n; i++)
for(int j = 1; j <= i - 1; j++)
if(a[i].North > a[j].North)
{
Dp[i] = max(Dp[i] , Dp[j] + 1);
Maxn = max(Dp[i] , Maxn);
}
Write(Maxn);
return 0;
}

最新文章

  1. sql 查询表中所有字段的名称
  2. 使用js脚本批量下载慕课网视频
  3. 2016 Multi-university training contest
  4. 【leetcode】Maximum Gap
  5. 【HDOJ】【2829】Lawrence
  6. hdu 3622 二分+2-SAT判定
  7. https配置
  8. 热门IOS 第三方库
  9. (原创)看我用各种姿势在手机和PC查看到连接到的wifi密码
  10. Linux命令 查看及修改文件属性
  11. 翻译:MariaDB ALTER TABLE语句
  12. Appsacn 定期自动化扫描
  13. 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究
  14. Oracle表被锁无法问题处理
  15. RobotFrameWork(一)robotfamework(python版)及Ride在windows安装
  16. Oracle 存储过程起步
  17. python开发学习(元组、字符串、列表、字典深入)
  18. sqlserver自增主键
  19. while (~scanf(&quot;%d%d&quot;,&amp;m,&amp;n))什么用的?
  20. [日常] Go语言圣经-函数多返回值习题

热门文章

  1. drbd虚拟机宕机恢复方法
  2. Day003 变量、常量、作用域
  3. Maven关于web.xml中Servlet和Servlet映射的问题
  4. Java中读取文件的几种路径配置
  5. Java并发工具篇
  6. InnoDB解决幻读的方案——LBCC&amp;MVCC
  7. MySQL字段默认值设置详解
  8. RabbitMQ高级特性
  9. 7. IDEA概述和安装
  10. 使用 vue3 的自定义指令给 element-plus 的 el-dialog 增加拖拽功能