题意

lsp 学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天......受尽屈辱的 lsp 黑化成为了黑暗英雄Lord lsp。就如同中二漫画的情节一样,Lord lsp 打算毁掉这个世界。数学竞赛界的精英 lqr 打算阻止Lord lsp 的阴谋,于是

她集合了一支由数学 竞赛选手组成的超级行动队。由于队员们个个都智商超群,很快,行动队便来到了 Lord lsp 的黑暗城堡的下方。

但是,同样强大的 Lord lsp 在城堡周围布置了一条“不可越过”的坚固防线。防线由很 多防具组成,这些防具分成了 N 组。我们可以认为防线是一维的,那么每一组防具都分布 在防线的某一段上,并且同一组防具是等距离排列的。也就是说,我们可以用三个整数 S, E 和 D 来描述一组防具,即这一组防具布置在防线的 S,S + D,S + 2D,...,S + KD(K∈ Z,S + KD≤E,S + (K + 1)D>E)位置上。

黑化的 Lord lsp 设计的防线极其精良。如果防线的某个位置有偶数个防具,那么这个位 置就是毫无破绽的(包括这个位置一个防具也没有的情况,因为 0 也是偶数)。只有有奇数 个防具的位置有破绽,但是整条防线上也最多只有一个位置有奇数个防具。作为行动队的队 长,lqr 要找到防线的破绽以策划下一步的行动。但是,由于防具的数量太多,她实在是不 能看出哪里有破绽。作为 lqr 可以信任的学弟学妹们,你们要帮助她解决这个问题。

对于 100% 的数据,满足防具总数不多于 \(10^8,S_i≤E_i,1≤T≤5,N≤200000,0≤S_i, E_i,D_i≤2^{31}-1\)。

分析

只有一个位置是奇数,设该位置是x。

那么大于等于x的位置求前缀和是奇数,小于x的位置求前缀和是偶数,具有二分性质。

时间复杂度\(O(N \log_2 E)\)。

代码

#include<bits/stdc++.h>
#define rg register
#define il inline
#define co const
template<class T>il T read(){
rg T data=0,w=1;
rg char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') w=-1;
ch=getchar();
}
while(isdigit(ch))
data=data*10+ch-'0',ch=getchar();
return data*w;
}
template<class T>il T read(rg T&x){
return x=read<T>();
}
typedef long long ll;
using namespace std; co int N=2e5+1;
unsigned S[N],E[N],D[N];
int main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
int kase=read<int>();
while(kase--){
int n=read<int>();
for(int i=1;i<=n;++i)
read(S[i]),read(E[i]),read(D[i]);
unsigned l=0,r=1U<<31;
while(l<r){
unsigned mid=(l+r)>>1,cnt=0;
for(int i=1;i<=n;++i) if(S[i]<=mid)
cnt+=1+(min(E[i],mid)-S[i])/D[i];
if(cnt&1) r=mid;
else l=mid+1;
}
if(l==1U<<31) puts("There's no weakness.");
else{
unsigned cnt=0;
for(int i=1;i<=n;++i)
if(S[i]<=l&&l<=E[i]&&(l-S[i])%D[i]==0) ++cnt;
printf("%u %u\n",l,cnt);
}
}
return 0;
}

CH0805 防线(秦腾与教学评估)的更多相关文章

  1. OpenJudge-bailian 3454 秦腾与教学评估

    http://bailian.openjudge.cn/practice/3454?lang=en_US 题目 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学 ...

  2. [luogu4403][bzoj1271][BJWC2008]秦腾与教学评估

    题目描述 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学们被要求八点起床,十一点回宿舍睡觉,不准旷课,上课不准迟到,上课不准睡觉--甚至连著名的北大三角地也在 ...

  3. [BZOJ1271][WC2008]秦腾与教学评估(巧妙的二分)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1271 分析: 很巧妙的一道题 因为最多只有一个点是奇数,所以说明这个点前面的前缀和都是 ...

  4. BZOJ 1271 秦腾与教学评估

    二分. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  5. BZOJ1271: [BeiJingWc2008]秦腾与教学评估

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1271 题解: 这种题真是太神了! 只需要考虑被覆盖的次数的奇偶性,并且保证满足题意的点至多只有 ...

  6. bzoj1271 秦腾与教学评估

    SB题!!! 我TM困惑了一下午,三份代码答案全都不一样,后来才发现要用long long来二分... 拿记事本一改就A了. 我TM...... 这SB题目...... 这惨痛的事实充分说明了long ...

  7. luogu P4403 [BJWC2008]秦腾与教学评估

    题目 一道神奇的题qwq 首先看题很容易想到把所有的点存下来然后暴力枚举...于是RE 20分 所以要找一种不用开那么大的数组的解法(然而我自己是不可能想出来的qwq 注意一个地方,人数为奇数的位置“ ...

  8. [BJWC2008]秦腾与教学评估

    嘟嘟嘟 二分好题. 怎么二分呢?反正我是没想出来. 看了题解. 因为只有一个为奇数的点,所以对于一个位置x,求出区间[0, x]的教总和,如果为奇数,说明x取大了:否则x取小了(妙啊). 虽然答案在i ...

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

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

随机推荐

  1. form表单提交数据的数据格式

    form表单提交的数据格式默认是 enctype="application/x-www-form-urlencoded"这样将input框的数据与input框的name属性以键值对 ...

  2. Swift 4.1 正式发布,新增更多泛型特性支持

    Swift 4.1 兼容 4.0,并做了一些改进,其中大部分通过了 Swift Evolution 流程.此次发布,包含了对核心语言的更新,包括新增更多对泛型的支持.新的构建选项,以及对 Swift ...

  3. jdk动态代理使用及原理

    jdk动态代理的使用 1.创建实现InvocationHandler接口的类,实现invoke(Object proxy, Method method, Object[] args)接口,其中invo ...

  4. Spring Boot总结

    一.Spring Boot 入门 1.Spring Boot 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.微服务 2014,m ...

  5. 2-6-搭建FTP服务器实现文件共享

    ---------------------------------------------- 大纲: FTP服务:(文件传输协议---> File Transfer Protocol) 常见FT ...

  6. Hibernate[延迟加载] [三种状态] [脏检查] [缓存机制]

    一.持久化对象的唯一标识 java中按内存地址不同区分同一个类的不同对象,关系数据库用主键区分同一条记录,Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系 什么是OID? 解析: ...

  7. Windows 系统cmd设置添加静态路由方式

    电脑上添加静态路由,cmd设置路由 方法/步骤 1.首先在“运行”窗口输入cmd(按WIN+R打开运行窗口),然后回车进入命令行,输入 route  add  10.253.251.0  mask   ...

  8. Django 中设置分页页码,只显示当前页以及左右两页

    设置后的效果如下: Django 给我们提供了分页的功能:`Paginator`和`Page`类都是用来做分页的.他们在Django中的路径为:`from django.core.paginator ...

  9. ftp的虚拟用户的搭建

    虚拟的搭建在安装的根匿名的一样,在改配置文件之前需要创建虚拟的账号 路径为/etc/vsftpd/ 创建pam认证文件 然后修改配置文件其余的文件配置跟本地的一样. 然后重启vsftpd服务 想要实现 ...

  10. hystrix 线程数,超时时间设置测试

    拜读了大拿的文章,收藏起来 https://mp.weixin.qq.com/s?__biz=MzU0OTk3ODQ3Ng==&mid=2247483791&idx=1&sn= ...