博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
noip2012借教室
阅读量:5133 次
发布时间:2019-06-13

本文共 1183 字,大约阅读时间需要 3 分钟。

答案满足单调性 二分即可

以前缀和的形式存储每天需要教室的数量 计算时暴力O(n)算出每天教室的数量

这样总复杂度nlogn

ps:自己真是作死居然用cin..AC代码被cin卡到45

#include 
#include
#include
#include
#include
#define N 1000001using namespace std;int r[N];int m,n,x[N],y[N],s[N];long long f[N];int main(){ cin>>n>>m; for (int i=1;i<=n;i++) scanf("%d",&r[i]); for (int i=1;i<=m;i++) { scanf("%d%d%d",&s[i],&x[i],&y[i]); } int zuo,you; zuo=1; you=m+1; while (zuo!=you) { int mid=(zuo+you)/2; int ss=0; for (int i=zuo;i<=mid;i++) { f[x[i]]+=s[i]; f[y[i]+1]-=s[i]; } int ff=0; for (int i=1;i<=n;i++) { ss+=f[i]; if (ss>r[i]) { ff=1; break; } } if (ff==1) { for (int i=zuo;i<=mid;i++) { f[x[i]]-=s[i]; f[y[i]+1]+=s[i]; } you=mid; } else zuo=mid+1; } if (zuo==m+1) { printf("0"); return 0; } else { printf("-1\n"); printf("%d",zuo); }}

 

转载于:https://www.cnblogs.com/iamszy/p/4075335.html

你可能感兴趣的文章
学习微软 Excel 2002 VBA 编程和XML,ASP技术
查看>>
游戏开发常用算法
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Intellij IDEA(eclipse设置)常用快捷键
查看>>
深入理解Java:注解(Annotation)基本概念
查看>>
NAT基本原理
查看>>
Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
查看>>
visio二次开发——图纸解析
查看>>
Activity之间的跳转:
查看>>
iTunes Connect 开发者上手经验(转)
查看>>
vertical-align你为什么不生效
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>
软件是天时、地利、人和的产物!
查看>>
python定时清空本目录下除本脚本外的全部文件
查看>>
【PHP】在目标字符串指定位置插入字符串
查看>>
【JS】jQuery设置定时器,访问服务器(PHP示例)配合微信、支付宝原生支付,跳转web网页...
查看>>
实验四2
查看>>
VS2012+Win7网站发布详细步骤
查看>>