2017"百度之星"程序设计大赛
来源:互联网 发布:win10优化驱动器要几遍 编辑:程序博客网 时间:2024/06/16 23:06
思路:
我们将区间有重叠部分的延展成一个区间。将区间按照起点从小到大排排序就行。
然后我们将两个相邻的区间中间空白部分求一个前缀和,存到sum【i】中,表示我们从第一个区间的起点,到第i个区间的终点,我们共需要多少张补签卡才行。
那么接下来我们O(n)枚举起点,然后二分终点,用前缀和O(1)check一下就行了。
Ac代码:
#include<stdio.h>#include<iostream>#include<algorithm>#include<string.h>using namespace std;#define ll __int64struct node{ ll l,r;}a[150000],b[150000];ll sum[150000];ll cmp(node a,node b){ if(a.l!=b.l)return a.l<b.l; else return a.r<b.r;}int main(){ // freopen("D:\\5in.txt", "r", stdin); // freopen("D:\\myout.txt", "w", stdout); ll tmpn,m; while(~scanf("%I64d%I64d",&tmpn,&m)) { for(ll i=1;i<=tmpn;i++) { scanf("%I64d%I64d",&a[i].l,&a[i].r); } sort(a+1,a+1+tmpn,cmp); ll n=0; ll L=a[1].l,R=a[1].r; for(ll i=1;i<=tmpn;i++) { ll flag=0; if(a[i].l<=R) { R=max(R,a[i].r); } else { flag=1; ++n; b[n].l=L; b[n].r=R; L=a[i].l; R=a[i].r; } if(i==tmpn) { ++n; b[n].l=L; b[n].r=R; } }/* printf("%I64d\n",n); for(ll i=1;i<=n;i++) { printf("%I64d %I64d\n",b[i].l,b[i].r); } printf("\n"); */ sum[0]=0;sum[1]=0; for(ll i=2;i<=n;i++) { sum[i]=sum[i-1]+b[i].l-b[i-1].r-1; }/* printf("Sum:\n"); for(ll i=1;i<=n;i++) { printf("%I64d ",sum[i]); } printf("\n");*/ ll output=m; for(ll i=1;i<=n;i++) { ll ans=-1; ll l=i; ll r=n; while(r-l>=0) { ll mid=(l+r)/2; if(sum[mid]-sum[i]<=m) { ans=mid; l=mid+1; } else { r=mid-1; } } if(ans==-1)continue; output=max(output,b[ans].r-b[i].l+1+m-(sum[ans]-sum[i])); } // printf("---\n"); printf("%I64d\n",output); }}
阅读全文
0 0
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 【2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛-资格赛
- 百度之星初赛B——Chess
- MyBatis 示例之存储过程(二)
- matlab求各点间距离
- CSS3 Transform变形理解与应用
- 基于Python的卷积神经网络和特征提取(Theano)
- 2017"百度之星"程序设计大赛
- LocalDateTime计算时间差
- 试一试 kolla部署OpenStack Ocata
- 排序算法稳定性
- 朴素神经网络原理抛砖引玉
- 反射
- jzoj 1261 数字游戏
- [jzoj]1205. 帮助Bub(“后效性”DP)
- 理解javas原型