题意:n个区间,要选出一些不相交(端点也不能相交)的区间,求最长的长度

n <= 2e5

思路:跟某个经典的贪心模型很像不过却是个DP。

题解的线段树优化DP听他们说我也不知道什么鬼,然后今天写了个二分出来的

早知道不写模拟题多好。。我就不适合当模拟题选手。。。

代码看起来很短是lowerbound的功劳

先把区间按右端点(结束时间)排序,设dp[i]为前i个区间的答案,然后用类似n^2的LIS的方法去转移,这里因为已经按右端点排好序了就可以二分了,我直接重载了一个lowerbound的cmp来判断两个区间不相交

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<iostream>
 5 #define LL long long
 6 #define debug(x) cout << "[" << x << "]" << endl
 7 using namespace std;
 8
 9 const int mx = 2e5+10;
10 int dp[mx];
11
12 struct seg{
13     int l, r;
14     bool operator < (const seg& a) const{
15         return r < a.r;
16     }
17 }a[mx];
18
19 bool cmp(seg a, seg b){
20     return a.r < b.l;
21 }
22
23 int main(){
24     int n;
25     scanf("%d", &n);
26     for (int i = 1; i <= n; i++)
27         scanf("%d%d", &a[i].l, &a[i].r);
28     sort(a+1, a+n+1);
29     for (int i = 1; i <= n; i++)
30         dp[i] = a[i].r-a[i].l+1;
31     for (int i = 2; i <= n; i++){
32         int sum = dp[i];
33         int k = lower_bound(a+1, a+i+1, a[i], cmp)-a;
34         if (k >= 1) sum += dp[k-1];
35         dp[i] = max(dp[i-1], sum);
36     }
37     printf("%d\n", dp[n]);
38     return 0;
39 }

upd:看了队里一个神仙的线段树代码

对不起打扰了看不懂啊

https://paste.ubuntu.com/p/FmBbkKtTXP/

转载于:https://www.cnblogs.com/QAQorz/p/9622146.html

CSUST-2018区域赛选拔个人赛-1019 看直播(二分+DP)相关推荐

  1. 区域判断hdu 3681 Prison Break bfs+二分+dp

    时间紧张,先记一笔,后续优化与完善. 这个是2010杭州区域赛的目题. bfs出最短路,二分谜底,dp判断可行性. #include <iostream> #include <cst ...

  2. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(昆明) Cities(区间dp)

    C-Cities live4m题解 #include<bits/stdc++.h>using namespace std;const int N=5050; int f[N][N],a[N ...

  3. icpc 2020沈阳区域赛补题

    2020沈阳区域赛 H 这题是一道典型dp 但是需要用滚动数组优化空间, 在状态转移的时候需要考虑一下是否满足天数条件. 我真的吐了,debug改了半天之后发现错误原因是: 排序应该是 sort(v+ ...

  4. 未来杯区域赛临近收官,多家高校队伍共同挑战人工智能领域的难题

    由中软国际教育科技集团旗下睡前Futurelab携手中国青少年发展基金会.DeepTech和华为手机共同主办,清华语音和语言技术中心.北京希尔贝壳科技有限公司和厦门大学海洋与地球学院共同协办的&quo ...

  5. 2018亚洲区域赛焦作站参赛总结

    2018年11月26日,我们参加了ACM焦作站的区域赛,第188名,差14名获得铜奖,些许遗憾.下面从赛前准备,比赛过程,赛后反思和规划三方面总结一下. 赛前准备,因为11.3是青岛站的区域赛,所以准 ...

  6. 2018ICPC区域赛徐州站赛后总结(The 2018 ACM-ICPC Asia Xuzhou Regional Contest)

    废话 挺长时间不更新了,主要还是上大学了之后事挺多的吧,一般周末有足球和台球的新生杯要打,还偶尔去当其他场次的第四官员,去远征个客场.ACM训练之类的......所以大概之前的回忆录想恢复更新也许要等 ...

  7. 2018年 ACM/ICPC亚洲区域赛 青岛赛区现场赛 比赛总结

    首先祝贺自己收获了ACM生涯中的第二枚铜牌. 首先吐槽一下中石油: 周六早上来到中国石油大学,连个志愿者小姐姐都没看到.(但是看到了女装大佬).报完到之后发现教练少了一张午餐券(要不要这么粗心).为了 ...

  8. 2018 ACM-ICPC亚洲区域赛 北京赛区

    2018 ACM-ICPC亚洲区域赛 北京赛区 A - Jin Yong's Wukong Ranking List HihoCoder - 1870 题意 给N对关系,每对关系表示为A 比B 厉害, ...

  9. 2018年ACM-ICPC亚洲区域赛(焦作)赛后总结

    昨天刚参加完人生中的第一场ACM-ICPC亚洲区域赛焦作站,对于这次比赛两个字"自闭". 正式赛前一天早上七点起床,从西安坐高铁去郑州,然后坐城际高铁去焦作,因为热身赛马上就要开始 ...

  10. 2018年区域赛总结

    今年区域赛,一铁一铜告终 第一站青岛站,打铁.难过是难过,但是变强的想法就更加强烈,同时也更加深刻的体会到了正式赛与区域赛还是在各个方面存在差别,平常应该更规范的要求自己. 热身赛因为只有一个人,虽然 ...

最新文章

  1. arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片
  2. 基于JSP实现OA办公系统
  3. 【MATLAB】进阶绘图 ( colormap 颜色图矩阵分析 | 自定义 colormap 颜色图 | 生成 64 x 3 的 colormap 颜色图矩阵 )
  4. 【转】ABAP的坑3
  5. python基础学习教程:Python基础语法
  6. PHP与ThinkPHP读写文件
  7. 40.服务器搭建准备
  8. XenApp/XenDesktop 7.12新功能LHC解读
  9. java进度条的使用_java 中进度条的使用
  10. swift 网络----利用URLSession的Data Task下载单张图片(包含图片的增量下载)
  11. 硬件信息查看PHP,如何查看电脑硬件信息|查看电脑硬件信息软件 查看电脑CPU/显卡/内存条/主板型号等配置...
  12. 新晋小王子 doodoo.js Node.js开发框架
  13. 时间序列平稳性分析和白噪声检验
  14. 牛客每日练习----骑行川藏,Lucky Coins,不凡的夫夫
  15. 二十一世纪大学英语读写教程(第三册)学习笔记(原文)——1 - How I Got Smart(我是如何变聪明的)
  16. 从输入URL到渲染的完整过程?
  17. 一键卸载电脑自带Office2003
  18. getenv、setenv函数(获取和设置系统环境变量) 与 环境变量
  19. 乐鑫Esp32学习之旅 乐鑫 ESP-S2/S3 模组的实现 USB 无线网卡上网,为你的台式机装上无线WiFI上网吧。(附带源码)
  20. IMX6ULL 主频和时钟配置

热门文章

  1. 国内移动CRM市场规模不及salesforce年营收3%
  2. List(JDK1.7)(2)
  3. MySQL crash-safe replication
  4. 引发电气火灾火警的原因(转载)
  5. 第十二次课:Servlet实现用户管理
  6. 2014北京邀请赛 F Football on Table
  7. 为Java应用程序提供了空前的代码保护控件DashO-Pro
  8. 【转】一些 SQLite技巧
  9. 让代码在SharePoint页面执行如何在aspx页面中写代码
  10. 诗一首,程序员不仅仅只会写程序