秦腾与教学评估

题面描述
在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估。在教学评估期间,同学们被要求八点起床,十一点回宿舍睡觉,不准旷课,上课不准迟到,上课不准睡觉……甚至连著名的北大三角地也在教学评估期间被以影响校容的理由被拆除。这些“变态”规定令习惯了自由自在随性生活学习的北大同学叫苦不迭。这一天又到了星期五,一大早就是秦腾最不喜欢的高等代数课。可是因为是教学评估时期,不能迟到,于是他在八点五分的时候挣扎着爬出了宿舍,希望能赶快混进在八点钟已经上课了的教室。可是,刚一出宿舍楼门他就傻眼了:从宿舍到教学楼的路上已经站满了教学评估团的成员。他们的目的就是抓住像他这样迟到的学生,扣除学校的分数。秦腾当然不能让评估团得逞。他经过观察发现,整个评估团分成了N个小组,每个小组的成员都分布在从宿舍楼到教学楼的路上的某一段,并且同一小组的成员间的距离是相等的。于是,我们可以用三个整数S,E,D来描述评估团的小组:既该小组的成员在从宿舍到教学楼的路上的:S,S+D,S+2D,…,S+KD(K∈Z,S+KD≤E,S+(K+1)D>E)位置。观察到了教学评估团的这一特点,又经过了认真的思考,秦腾想出了对策:如果在路上的某一位置有奇数个教学评估团成员,他就可以运用调虎离山,声东击西,隔山打牛,暗度陈仓……等方法,以这一地点为突破口到达教学楼。但是由于教学评估团的成员的十分狡猾,成员位置安排的设计极其精妙,导致在整条路上几乎没有这样的位置出现。即使由于安排不慎重出现了这样的位置,最多也仅有一个。现在秦腾观察出了所有小组的安排,但是由于整个教学评估团的人数太多,他实在看不出这样的位置是否存在。现在,你的任务是写一个程序,帮助他做出判断。

输入格式
第一行为T代表测试数据组数每组第一行为N。接下来N行,每行三个整数Si,Ei,Di。N≤2∗105,0≤Si,Ei,Di≤231−1 输入文件不大于2048K

输出格式
对于每组数据如果所求位置不存在,则输出Poor Qin Teng
否则输出两个整数Posi,Count,代表在唯一位置Posi,有Count个教学评估图的成员Count为奇数。

大致思路就是用前缀和加二分去寻找答案。
题目要求只能出现一个奇数,假设存在的情况下,那么就有一边的前缀和是奇数,以此来二分,最后找到答案是否存在。

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
struct each {int s, e, d;
}a[N];
int n;
ll _sum(int x) {ll sum = 0;for(int i = 0; i < n; i++)if(a[i].s <= x)sum += (min(x, a[i].e) - a[i].s)/ a[i].d + 1;return sum;
}
int main() {int t;scanf("%d", &t);while(t--) {scanf("%d", &n);int l = 0, r = 0;for(int i = 0; i < n; i++) {scanf("%d %d %d", &a[i].s, &a[i].e, &a[i].d);r = max(r, a[i].e);}while(l < r) {int mid = l + r >> 1;if(_sum(mid) & 1) r = mid;else l = mid + 1;}ll sum = _sum(r) - _sum(r - 1);if(sum % 2)printf("%d %lld\n", r, sum);else    puts("There's no weakness.");}return 0;
}

经典二分:秦腾与教学评估相关推荐

  1. [BZOJ1271][BeijingWc2008][二分]秦腾与教学评估

    <题目> <算法> 二分 <分析> 看起来题目挺奇葩的.关键点在于判断的是奇偶,而且只有一处是奇数.利用奇偶数的性质,奇数点后面的数的前缀和全部都是奇数.利用这一性 ...

  2. 【WC2008】【BZOJ1271】秦腾与教学评估(二分,前缀和,奇偶性乱搞)

    problem 一条路上有n个教学评估团,对于每个评估团从s开始每d个站一个人直到e结束 现在要找到一个站的人数是奇数的点,这个点可能没有,且至多只有一个 问这个点在哪以及这个点站了多少人 solut ...

  3. 二分:[BJWC2008]秦腾与教学评估

    洛谷传送门 解析 因为至多有一个单数 假设其位置为k,1-i的累加和为s[i] 则s[1]-s[k-1]全是偶数 s[k]-s[max]全是奇数 答案呈单调性,可以用二分算法 check函数(计算前缀 ...

  4. 【二分】防具布置/秦腾与教学评估(ybtoj 二分-1-2/jzoj 1253/luogu 4403)

    正题 ybtoj 二分-1-2 jzoj 1253 luogu 4403 题目大意 给出n组数:si,ei,dis_i,e_i,d_isi​,ei​,di​ 对于每组数据,表示在sis_isi​加1, ...

  5. Luogu P4403 [BJWC2008]秦腾与教学评估【二分答案】By cellur925

    题目传送门 这道题:真·凉心出题人. 二分答案,个人感觉其实并不只适用于有明显的"最大值最小/最小值最大"条件的题目,其实也可以称它为一种"优化的暴力".这题就 ...

  6. 论前端工程师如何应对西电教学评估系统

    0x00. 更新 隔了一年多了,一直打算把这个插件再完善一下,这不花了点时间重构了一下.这次更新使大家可以在教学评估列表页(就是那个有很多老师的页面)一键进行评教了. 但是你必须在每次评教完成弹出评估 ...

  7. 内大教务系统教学评估

    原网址: 内大教务系统教学评估 F12 控制台输入 $("input[value='10_1']").prop("checked", true);//全部选择优 ...

  8. 终稿:教材管理系统与教学评估系统

    教学管理系统 实验4:https://blog.csdn.net/weixin_43850826/article/details/90768032 实验3:https://blog.csdn.net/ ...

  9. 牛客 试卷: 浩鲸科技2019校招算法类笔试题 经典二分 二分答案

    珂珂喜欢吃香蕉.这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉.警卫已经离开了,将在 H 小时后回来. 珂珂可以决定她吃香蕉的速度 K (单位:根/小时).每个小时,她将会选择一堆香蕉, ...

最新文章

  1. 百度富文本编辑器UEditor安装配置全过程
  2. Boost:bimap双图的range范围的测试程序
  3. 解决mxnet错误:OSError: libcudart.so.10.0: cannot open shared object file: No such file or directory
  4. php培训12.22
  5. Linux 2440 LCD 控制器
  6. python的三个特性_Python3.9的7个特性
  7. asp.net 抓取html内容,c# – 如何从ASP.NET获取网页的HTML内容
  8. 5分钟搭一个FastDFS--Linux篇
  9. 【SVN】SVN版本回退与常用命令总结
  10. 计算机打开记事本步骤,记事本怎么打开(学会1秒打开电脑记事本)
  11. 嵌入式研发项目管理的方法论
  12. 算笔账:阿里巴巴股票买不买
  13. chipsel语言_英语快速记忆法视频
  14. day 69-70 一对一 一对多 多对一联表查询
  15. 数字媒体技术考点整理
  16. matlab 期权图,欧式看涨期权定价作图|MATLAB 程序化交易(量化投资)|MATLAB技术论坛 - Powered by Discuz!...
  17. Android+eclipse+adt搭建开发环境
  18. 布隆过滤器:一种低空间成本的判断元素是否存在的方式
  19. CCF认证 2018-03 棋局评估
  20. 3 Java的主要特点

热门文章

  1. pytorch forward_【Pytorch部署】TorchScript
  2. python正十三边形_一起学python-opencv十三(直方图反向投影和模板匹配)
  3. 假期别在家里要发霉了?可以靠他们度过无聊时光
  4. 当时我就震惊了:无穷带来的各种悖论
  5. 有人问我:AI这么火,要不要去追赶AI的热潮?
  6. 读书笔记-互联网思维必读10本书之一《免费》
  7. Linux系统断电后起不来,centos/linux 断电后,开机光标闪现不能开启,重新引导
  8. java class文件 代码_java_基础——用代码编译.java文件+加载class文件
  9. io流图解 java_详细讲解JAVA中的IO流
  10. js 上下箭头滚动_JS中的this完全讲解,再也不会被this搞晕了