NOIP提高组 2012 借教室
来源:互联网 发布:天津港火灾知乎 编辑:程序博客网 时间:2024/05/17 01:18
二分答案+前缀和优化。
#include<cstdio>const int N=1111111;const int INF=1234567890;int a[N],d[N],s[N],t[N],c[N];int m,n,mid,now,l,r,as;int min(int A,int B){ if (A>B) return B;else return A;}bool check(int k){ if (now<k) { for (int i=now+1;i<=k;i++) c[s[i]]+=d[i],c[t[i]+1]-=d[i]; } else { for (int i=k+1;i<=now;i++) c[s[i]]-=d[i],c[t[i]+1]+=d[i]; } now=mid; int sum=0; for (int i=1;i<=n;i++) { sum+=c[i]; if (sum>a[i]) return true; } return false;}int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) scanf("%d",&a[i]); for (int i=1;i<=m;i++) scanf("%d%d%d",&d[i],&s[i],&t[i]); l=1;r=m;as=INF; while (l<=r) { mid=(l+r)>>1; if (check(mid)) as=min(as,mid),r=mid-1; else l=mid+1; } if (as==INF) printf("0"); else { printf("-1\n"); printf("%d",as); } return 0;}
0 0
- 2012年NOIP提高组 借教室
- NOIP提高组 2012 借教室
- NOIP 2012 提高组 借教室
- NOIP 2012提高组 借教室
- 2012 NOIP提高组 借教室
- 借教室 2012年NOIP全国联赛提高组
- [NOIP 2012] 借教室
- NOIP 2012 借教室
- NOIP 2012 借教室
- Noip 2012 借教室
- C++——NOIP提高组——借教室
- Codevs 1217 借教室 2012年NOIP全国联赛提高组
- 1217 借教室 2012年NOIP全国联赛提高组[迷之不能自拔]
- 借教室 ——2012年NOIP全国联赛提高组
- 【NOIP 2016 提高组】换教室
- 2016noip提高组day1 换教室
- P1083 [NOIP 2012]借教室
- Luogu P1850 [NOIp提高组2016]换教室
- Java enum的用法详解
- js原型设计模式
- 【数据库】关系代数基本运算
- 走向成功需要一个开始并不断坚持下去
- JQ选择器(常用)
- NOIP提高组 2012 借教室
- caffe调试之caffeheatmap:make matcaffe
- 记录一次LinkError排错:
- Git的基本使用
- SUMO应用工具:SUMO-GUI
- iOS实时卡顿监控
- 降级论
- NodeJs安装及配置环境变量的问题及解决办法
- 关于Android图片资源瘦身的奇思妙想