[BJWC2008]秦腾与教学评估
二分好题。
怎么二分呢?反正我是没想出来。
看了题解。
因为只有一个为奇数的点,所以对于一个位置x,求出区间[0, x]的教总和,如果为奇数,说明x取大了;否则x取小了(妙啊)。
虽然答案在int内,但是L + R可能会爆int,导致有几个点TLE了,所以还是都开long long 吧。
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cctype>
#include<vector>
#include<stack>
#include<queue>
using namespace std;
#define enter puts("")
#define space putchar(' ')
#define Mem(a, x) memset(a, x, sizeof(a))
#define rg register
typedef long long ll;
typedef double db;
const int INF = 0x3f3f3f3f;
const db eps = 1e-;
const int maxn = 2e5 + ;
inline ll read()
{
ll ans = ;
char ch = getchar(), last = ' ';
while(!isdigit(ch)) {last = ch; ch = getchar();}
while(isdigit(ch)) {ans = ans * + ch - ''; ch = getchar();}
if(last == '-') ans = -ans;
return ans;
}
inline void write(ll x)
{
if(x < ) x = -x, putchar('-');
if(x >= ) write(x / );
putchar(x % + '');
} int n;
struct Node
{
ll s, e, d;
}t[maxn]; ll calc(ll x)
{
ll ret = ;
for(int i = ; i <= n; ++i)
{
if(t[i].s > x) continue;
ret += (min(x, t[i].e) - t[i].s) / t[i].d + ;
}
return ret;
} int main()
{
int T = read();
while(T--)
{
n = read(); ll Max = ;
for(int i = ; i <= n; ++i) t[i].s = read(), t[i].e = read(), t[i].d = read(), Max = max(Max, t[i].e);
ll L = , R = Max;
if(!(calc(R) & )) {puts("Poor QIN Teng:( "); continue;}
while(L < R)
{
ll mid = (L + R) >> ;
if(calc(mid) & ) R = mid;
else L = mid + ;
}
write(L), space, write(calc(L) - calc(L - )), enter;
}
return ;
}
[BJWC2008]秦腾与教学评估的更多相关文章
- [luogu4403][bzoj1271][BJWC2008]秦腾与教学评估
题目描述 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学们被要求八点起床,十一点回宿舍睡觉,不准旷课,上课不准迟到,上课不准睡觉--甚至连著名的北大三角地也在 ...
- luogu P4403 [BJWC2008]秦腾与教学评估
题目 一道神奇的题qwq 首先看题很容易想到把所有的点存下来然后暴力枚举...于是RE 20分 所以要找一种不用开那么大的数组的解法(然而我自己是不可能想出来的qwq 注意一个地方,人数为奇数的位置“ ...
- Luogu P4403 [BJWC2008]秦腾与教学评估【二分答案】By cellur925
题目传送门 这道题:真·凉心出题人. 二分答案,个人感觉其实并不只适用于有明显的"最大值最小/最小值最大"条件的题目,其实也可以称它为一种"优化的暴力".这题就 ...
- OpenJudge-bailian 3454 秦腾与教学评估
http://bailian.openjudge.cn/practice/3454?lang=en_US 题目 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学 ...
- [BZOJ1271][WC2008]秦腾与教学评估(巧妙的二分)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1271 分析: 很巧妙的一道题 因为最多只有一个点是奇数,所以说明这个点前面的前缀和都是 ...
- BZOJ 1271 秦腾与教学评估
二分. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- BZOJ1271: [BeiJingWc2008]秦腾与教学评估
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1271 题解: 这种题真是太神了! 只需要考虑被覆盖的次数的奇偶性,并且保证满足题意的点至多只有 ...
- bzoj1271 秦腾与教学评估
SB题!!! 我TM困惑了一下午,三份代码答案全都不一样,后来才发现要用long long来二分... 拿记事本一改就A了. 我TM...... 这SB题目...... 这惨痛的事实充分说明了long ...
- CH0805 防线(秦腾与教学评估)
题意 lsp 学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天......受尽屈辱的 lsp 黑化成为了黑暗英雄Lord lsp.就如同中二漫画的情节一样,Lord lsp 打算毁掉这个世界.数学竞赛 ...
随机推荐
- 「bzoj1003」「ZJOI2006」物流运输 最短路+区间dp
「bzoj1003」「ZJOI2006」物流运输---------------------------------------------------------------------------- ...
- rsync 参数配置说明[转]
rsync 特性 可以镜像保存整个目录树和文件系统. 可以很容易做到保持原来文件的权限.时间.软硬链接等等. 无须特殊权限即可安装. 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修 ...
- vue中添加util公共方法&&ES6之import、export
vue中添加util公共方法&&ES6之import.export https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Re ...
- git使用问题及解决方法
1. 设置pull默认rebasegit config --global pull.rebase true 2. 问题解决:Unlink of file '.git/objects/pack/pack ...
- 03-struts2获得servetAPI
1 原理 三个域合一的时候相同的键值对以小的域为准.ActionContext 对象创建:每次请求的时候都会创建一个与请求对应的 ActionContext 对象.ActionContext 销毁:请 ...
- Scala安装及开发环境搭建
最近想学习下scala,为后面转大数据做一些沉淀. 1. 首先保证jdk已经成功安装 2. 去官网下载scala安装程序 http://www.scala-lang.org/download/all. ...
- ArrayList集合长度的问题
// 每次集合中实际包含的元素个数(count)超过了可包含元素的个数capcity //的时候集合就会向内存中申请多开启一倍的空间,来保证集合长度够用 static void Main(strin ...
- node.js获取cookie
node.js 获取cookie var Cookies ={}; if (req.headers.cookie != null) { req.headers.cookie.split(';').fo ...
- 2017年11月4日 vs类和结构的区别&哈希表&队列集合&栈集合&函数
类和结构的区别 类: 类是引用类型在堆上分配,类的实例进行赋值只是复制了引用,都指向同一段实际对象分配的内存 类有构造和析构函数 类可以继承和被继承 结构: 结构是值类型在栈上分配(虽然栈的访问速度比 ...
- RestTemplate请求出现401错误
最近遇到一个请求API接口总是报401 Unauthorized错误,起初是认为这个是平台返回的,后来用Postman请求,发现平台其实返回的是一串json,里面带有一些权限验证失败的消息,但到我们代 ...