$ CH0805 $ 防线 (二分值域,前缀和,特殊性质)



$ solution: $

注意博主所给题面的输出和原题有些不同

这道题当时想了很久很久,就是想不到怎么写。果然还是太 $ vegetable $ 了。首先我们可以肯定的是,我们不能暴力枚举,复杂度太高,数据范围太大!所以我们需要从题目中寻找性质!

题目说了要寻找一个数目为奇数的点,本来以为自己在二进制是与否这方面已经很有经验,但是这道题反手打脸。奇偶数是一个以二进制很有关的东西:(奇数+奇数=偶数)类似( 1 异或 1 = 0 ),(奇数+偶数=奇数)类似( 1 异或 0 = 1 ),所以这道题我们可以用前缀和来判断。题目给了一条很不起眼的条件:最多只有一个奇数位置!

这个条件让我可以二分值域,搞个前缀和,如果前面有奇数存在那么前缀和一定是奇数,反之为偶数。所以我们二分值域,算前缀和即可找到那个位置!



$ code: $

#include<iostream>
#include<cstdio>
#include<iomanip>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include<vector>
#include<queue>
#include<map>
#include<set> #define ll long long
#define db double
#define rg register int using namespace std; ll ans;
int t,n;
int a[200005];
int b[200005];
int v[200005]; inline int qr(){
register char ch; register bool sign=0; rg res=0;
while(!isdigit(ch=getchar()))if(ch=='-')sign=1;
while(isdigit(ch))res=res*10+(ch^48),ch=getchar();
if(sign)return -res; else return res;
} inline ll ask(ll x){
ll res=0;
for(rg i=1;i<=n;++i){
if(a[i]>x)continue;
if(b[i]<x) res+=1+(ll)(b[i]-a[i])/v[i];
else res+=1+(ll)(x-a[i])/v[i];
}return res;
} int main(){
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
t=qr();
while(t--){ n=qr();
rg l=2147483647,r=0; ans=0;
for(rg i=1;i<=n;++i){
a[i]=qr(),b[i]=qr(),v[i]=qr();
l=min(l,a[i]); r=max(r,b[i]);
ans+=(b[i]-a[i])/v[i]+1;
}
if(ans%2==0){
puts("Poor QIN Teng:(");
continue;
} ll mid;
while(l<=r){
mid=((ll)l+r)>>1;
if(!(ask(mid)%2))l=mid+1;
else r=mid-1;
}
printf("%d %lld\n",l,ask(l)-ask(l-1));
}
return 0;
}

CH0805 防线 (二分值域,前缀和,特殊性质)的更多相关文章

  1. Chapter2二分与前缀和

    Chapter 2 二分与前缀和 +++ 二分 套路 如果更新方式写的是R = mid, 则不用做任何处理,如果更新方式写的是L = mid,则需要在计算mid是加上1. 1.数的范围 789 #in ...

  2. CH0805 防线(秦腾与教学评估)

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

  3. [POJ3061]Subsequence(二分,前缀和)

    题目链接:http://poj.org/problem?id=3061 题意:给一个长为n的数列和整数s,求一个连续的子序列,使得这个子序列长度最短并且不小于这个整数s. 统计[1~i]的子序列和su ...

  4. hdu 6406 Taotao Picks Apples (2018 Multi-University Training Contest 8 1010)(二分,前缀和)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=6406 思路: 暴力,预处理三个前缀和:[1,n]桃子会被摘掉,1到当前点的最大值,1到当前点被摘掉的桃子的 ...

  5. suoi07 区间平均++ (二分答案+前缀和)

    https://www.vijos.org/d/SUOI/p/59dc5af7d3d8a1361ae62b97 二分一个答案,然后做一做前缀和,用满足区间大小的最小值减一减,判断答案合不合法 然而还要 ...

  6. D. Frets On Fire 【二分,前缀和】 (Codeforces Global Round 2)

    题目传送门:http://codeforces.com/contest/1119/problem/D D. Frets On Fire time limit per test 1.5 seconds ...

  7. LuoguP1314 聪明的质检员 【二分答案/前缀和】

    美丽的题号预示着什么... 描述 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n个矿石,从1到n逐一编号,每个矿石都有自己的重量wi以及价值vi.检验矿产的流程是: 1.给定m个 ...

  8. 139. 回文子串的最大长度(回文树/二分,前缀,后缀和,Hash)

    题目链接 : https://www.acwing.com/problem/content/141/ #include <bits/stdc++.h> using namespace st ...

  9. $Noip2011/Luogu1314$ 聪明的质监员 二分+巧妙前缀和

    $Luogu$ $Sol$ 首先$W$一定是某个$w_i$.于是一种暴力方法就出炉了,枚举$W$再计算. 注意到,满足$S-Y$的绝对值最小的$Y$只可能是两种,一种是$<S$的最大的$Y$,一 ...

随机推荐

  1. 使用xampp和HBuilder搭建php环境

    1.首先你的电脑里面要有两个软件  xampp 和 HBuilder xampp: HBuilder: 这两个软件都是免费的,在安装过程中也无需费力,只要设置好路径就行了. 在xampp安装过程中,需 ...

  2. 前端必须掌握的 docker 技能(2)

    概述 作为一个前端,我觉得必须要学会使用 docker 干下面几件事: 部署前端应用 部署 nginx 给部署的 nginx 加上 https 使用 docker compose 进行部署 给 ngi ...

  3. replace()函数

    1  https://jingyan.baidu.com/article/454316ab4d0e64f7a6c03a41.html

  4. maven scope provided和runtime的例子

    maven常用的scope有compile,provided,runtime,test. complie是默认值,表示在build,test,runtime阶段的classpath下都有依赖关系.te ...

  5. Spring 注解概览

    从Java5.0开始,Java开始支持注解.Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解.相比起之前使用xml来配置Spring框架,使用注解提供了更多的控制Spring框架 ...

  6. mysql安装及相关配置

    安装下载 第一种 安装mysql安装包 //www.jb51.net/softs/451120.html 保存root密码 打开系统偏好设置,start mysql server #配置mysql e ...

  7. python 爬虫入门1 爬取代理服务器网址

    刚学,只会一点正则,还只能爬1页..以后还会加入测试 #coding:utf-8 import urllib import urllib2 import re #抓取代理服务器地址 Key = 1 u ...

  8. TCP/IP笔记——UDP

    OSI模型中最下面的两层用来解决两个硬件设备在物理上的通信问题(如规定怎么将电平信号转换为数字信号),相对应的TCP/IP模型中,这部分代表将会将机器封装为一个MAC地址来实现通讯.网络层是关于,具体 ...

  9. python每日一练:0000题

    **第 0000 题:**将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 示例代码: from PIL import Image,Imag ...

  10. Golang基本类型整理

    总是用的用的就模糊了,不知道基本的类型有哪些,看来要反反复复弄几次. Golang基本类型整理 基本类型以及定义变量需要注意的 对于基本类型的介绍,感觉这个博客讲的比较透彻,基本上都是从源码的角度来入 ...