codevs1217 借教室 题解
codevs1217 借教室 题解
题意
/中文题惯例不翻译
笺释
这道题确实不好过,内存方面和时间方面要求都相当严格呢。
思路的话无非二分人数,最小第一个人就要取消掉,最大的话m个人都能满足,并且第i个人能满足的话,i个人之前的一定也满足(否则在之前就取消掉了)。
但是如何确定第i个人能否满足呢,这道题用到的是差分数组的方法,
int check(int x)
{int ans=0;//pre[i]:差分数组 里面存的是能让ans代表第i天所需教室的数字for(int i=1;i<=n;i++){pre[i]=0;}for(int i=1;i<=x;i++){pre[s[i]]+=d[i];pre[t[i]+1]-=d[i];}for(int i=1;i<=n;i++){ans+=pre[i];if(ans>r[i]){return 0;}}return 1;
}
具体想表达的感觉就已经完全被表达出来了,不知道能不能说明白呢,时常为此感到困惑。
互相理解果然是需要双方的共同努力才行的呢,不过对于我来说,也确实存在着诸多表达方面的问题,不过自己能否理解自己呢,我想,总是要让自己多多少少或是完完全全地理解自己才行的。
完整代码
#include<bits/stdc++.h>
#define MAXN 1000005
using namespace std;
int n,m;
int r[MAXN];
int d[MAXN],s[MAXN],t[MAXN];
int pre[MAXN];
int check(int x)
{int ans=0;//pre[i]:差分前缀数组 里面存的是能让ans代表第i天所需教室的数字for(int i=1;i<=n;i++){pre[i]=0;}for(int i=1;i<=x;i++){pre[s[i]]+=d[i];pre[t[i]+1]-=d[i];}for(int i=1;i<=n;i++){ans+=pre[i];// printf("%d %d\n",ans,i);if(ans>r[i]){return 0;}}return 1;
}
int solve()
{int l=1;int r=m;while(l<=r){//printf("%d %d\n",l,r);int mid=(l+r)>>1;if(check(mid)){l=mid+1;}else{r=mid-1;}}if(l<=m){printf("-1\n%d\n",l);}else{printf("0\n");}return 0;
}
int main()
{scanf("%d %d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&r[i]);}for(int i=1;i<=m;i++){scanf("%d %d %d",&d[i],&s[i],&t[i]);}solve();
}
转载于:https://www.cnblogs.com/SoniciSika/p/9034208.html
codevs1217 借教室 题解相关推荐
- tyvj 2075 借教室 题解
P2075 [NOIP2012T5]借教室 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 noip2012-tg 描述 在大学期间,经常需要租借教室.大到院 ...
- [NOIP2012] 借教室
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- 洛谷P1083 [NOIP2012提高组Day2T2]借教室
P1083 借教室 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借 ...
- 【每日一题】7月1日题目精讲 借教室
来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 文章目录 题目描述 题解: 差分: 二 ...
- 借教室(codevs 1217)
1217 借教室 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description ...
- P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★
P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...
- NOIP2012 D2 T2借教室
先上题目 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息 ...
- P1083 借教室(差分+二分)
https://www.luogu.org/problem/P1083 题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教 ...
- 借教室(洛谷-P1083)
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
最新文章
- button 去掉原生边框
- peleenet测试
- 局域网ip地址不够用怎么解决?
- #1407 : 后缀数组二·重复旋律2 (不可重叠最长重复子串问题)
- Python断言方法:assert
- linux eclipse安装、新建并运行java程序
- mysql 事件 函数_MySQL 自定义函数和存储过程的使用
- 用perl发送http请求
- 在Array原型链上扩展remove,contain等方法所遇到的坑
- div+css页面布局实战
- TM1620芯片使用
- 怎么追学计算机的女生,怎样去追比较文静,不爱说话的女生!!!!!
- PCB板上的字母代表哪些元器件?一文看全!
- 零基础如何学 Web 前端开发?
- 常用视频质量评价库以及下载地址
- IT英语中英文对照:著名的软件产品
- status_breakpoint谷歌浏览器如何解决?
- idea激活码?学生如何白嫖使用idea?
- 数据管理系统之数据模型
- LinuxProbe学习笔记(十三)
热门文章
- SQL进阶五:SQL完整性约束
- 【.Net MF网络开发板研究-01】IP地址设定及简单web演示
- getvalue函数怎么使用_Java中的构造函数——通过示例学习Java编程(14)
- [bzoj2467][中山市选2010]生成树_快速幂
- Java并发编程(十四)并发容器类
- Servlet中使用getInputStream进行文件上传
- 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】
- 【加】德鲁·卡宾森 - 质量效应3:天罚(2013年6月26日)
- SQL Cookbook:一、检索记录(1)从表中检索所有行和列
- 我的一些小想法(聊以一笑……)