题目:友好城市

分析一下可以转化为:选取最多的点对,使得点对之间连线没有交点,没有交点说明什么,假设选定第i组,则对于任意的j,一定满足a[i].l<a[j].l && a[i].r<a[j].r或者a[i].l>a[j].l && a[i].r>a[j].r,那么就可以先按左端点排序,再求一遍最长上升子序列,就解决了。

其实也可以继续优化到nlogn,但是没必要,对于本题的5000,n^2复杂度已经足以。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
const int N=5e3+5;
using namespace std;
struct pos
{
int l,r;
pos(int ll,int rr)
{
l=ll;r=rr;
}
pos(){
}
friend bool operator < (pos a,pos b)
{
return a.l<b.l;
}
}e[N];
int n,f[N];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int l,r;
scanf("%d %d",&l,&r);
e[i]=pos(l,r);
}
sort(e+1,e+1+n);
int ret=0;
for(int i=1;i<=n;i++)
{
f[i]=1;
for(int j=1;j<i;j++)
if(e[i].r>e[j].r)
f[i]=max(f[i],f[j]+1);
ret=max(ret,f[i]);
}
printf("%d\n",ret);
return 0;
}

最新文章

  1. [WPF]DataGridHyperlinkColumn网址过长TextTrimming无效
  2. yii过滤xss代码,防止sql注入
  3. [转]源代码的管理和发布:以SVN为例
  4. StdRandom.java
  5. 利用d3.js绘制雷达图
  6. Android实现异步处理 -- HTTP请求
  7. MySQL开启binlog并且保存7天有效数据
  8. iOS中 自定义cell升级版 (高级)
  9. percona-5.7二进制多实例安装
  10. 解决RAID重启后自动更名为md127
  11. Visual Studio使用Web Deploy远程发布网站及其配置
  12. SQL-5查找所有员工的last_name和first_name以及对应部门编号dept_no,也包括展示没有分配具体部门的员工
  13. Python 数据处理库 pandas 入门教程
  14. c++计时
  15. Enum 枚举值 (一) 获取描述信息
  16. SRA秘钥生成与解密
  17. 【技术分享会】 @第二期 微信开放API简述-0212
  18. 【转】Java中Synchronized的用法
  19. TextView UI美化-------自适应字体控件
  20. 时间序列分析工具箱—— h2o + timetk

热门文章

  1. EL&amp;JSTL笔记------jsp
  2. 开发个RTMP播放器居然这么难?RTMP播放器对标和考察指标
  3. Vmware虚拟主机访问外网设置
  4. 关于thinkphp5.1(tp5.1)中sum计算结果不精确、不准确的问题
  5. 在 AlertManager 报警通知中展示监控图表
  6. 使用 fail2ban 和 FirewallD 黑名单保护你的系统
  7. Docker 部署 JIRA(破解版)
  8. DML添加数据-删除数据-修改数据
  9. Python实现改进后的Bi-RRT算法实例
  10. Spring bean装配流程和三级缓存