【二分】防具布置/秦腾与教学评估(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,然后每隔did_idi就加1,当位置大于eie_iei时结束
题目保证数字是奇数的位置最多只有1个,问你这个位置是哪里
样例输入
3
2
1 10 1
2 10 1
2
1 10 1
1 10 1
4
1 10 1
4 4 1
1 5 1
6 10 1
样例输出
1 1
There's no weakness.
4 3
数据范围
1⩽T⩽51\leqslant T\leqslant 51⩽T⩽5
1⩽N⩽2×1051\leqslant N\leqslant 2\times 10^51⩽N⩽2×105
0⩽si,Ei,Di<2310\leqslant s_i,E_i,D_i < 2^{31}0⩽si,Ei,Di<231
Si⩽EiS_i\leqslant E_iSi⩽Ei
所有位置的数字之和⩽108\leqslant 10^8⩽108
解题思路
二分枚举目标位置
每次O(n)判断这个位置前面的数字之和
因为数字为奇数的位置最多有1个,所以这个位置后面的全是奇数,可以直接判断
代码
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 200010
using namespace std;
ll t, n, l, r, mid, s[N], e[N], d[N];
ll pd(ll x)//判断
{ll g = 0;for (int i = 1; i <= n; ++i)if (x >= s[i]) g += (min(e[i], x) - s[i]) / d[i] + 1;return g;
}
int main()
{scanf("%lld", &t);while(t--){l = (1ll<<32);scanf("%lld", &n);for (int i = 1; i <= n; ++i){scanf("%lld%lld%lld", &s[i], &e[i], &d[i]);l = min(l, s[i]);r = max(r, e[i]);}if (!(pd(r)&1))//最后一个位置是偶数{puts("There's no weakness.");continue;}while(l < r)//二分{mid = (l + r) >> 1;if (pd(mid)&1) r = mid;else l = mid + 1;}printf("%lld %lld\n", l, pd(l) - pd(l - 1));//前缀和相减}return 0;
}
【二分】防具布置/秦腾与教学评估(ybtoj 二分-1-2/jzoj 1253/luogu 4403)相关推荐
- 【WC2008】【BZOJ1271】秦腾与教学评估(二分,前缀和,奇偶性乱搞)
problem 一条路上有n个教学评估团,对于每个评估团从s开始每d个站一个人直到e结束 现在要找到一个站的人数是奇数的点,这个点可能没有,且至多只有一个 问这个点在哪以及这个点站了多少人 solut ...
- 二分:[BJWC2008]秦腾与教学评估
洛谷传送门 解析 因为至多有一个单数 假设其位置为k,1-i的累加和为s[i] 则s[1]-s[k-1]全是偶数 s[k]-s[max]全是奇数 答案呈单调性,可以用二分算法 check函数(计算前缀 ...
- Luogu P4403 [BJWC2008]秦腾与教学评估【二分答案】By cellur925
题目传送门 这道题:真·凉心出题人. 二分答案,个人感觉其实并不只适用于有明显的"最大值最小/最小值最大"条件的题目,其实也可以称它为一种"优化的暴力".这题就 ...
- 经典二分:秦腾与教学评估
秦腾与教学评估 题面描述 在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估.在教学评估期间,同学们被要求八点起床,十一点回宿舍睡觉,不准旷课,上课不准迟到,上课不准睡觉--甚至连著名 ...
- [BZOJ1271][BeijingWc2008][二分]秦腾与教学评估
<题目> <算法> 二分 <分析> 看起来题目挺奇葩的.关键点在于判断的是奇偶,而且只有一处是奇数.利用奇偶数的性质,奇数点后面的数的前缀和全部都是奇数.利用这一性 ...
- 论前端工程师如何应对西电教学评估系统
0x00. 更新 隔了一年多了,一直打算把这个插件再完善一下,这不花了点时间重构了一下.这次更新使大家可以在教学评估列表页(就是那个有很多老师的页面)一键进行评教了. 但是你必须在每次评教完成弹出评估 ...
- 内大教务系统教学评估
原网址: 内大教务系统教学评估 F12 控制台输入 $("input[value='10_1']").prop("checked", true);//全部选择优 ...
- 终稿:教材管理系统与教学评估系统
教学管理系统 实验4:https://blog.csdn.net/weixin_43850826/article/details/90768032 实验3:https://blog.csdn.net/ ...
- 易班网页版简易刷题:湖南商学院教学评估考试
代码没有优化,快的时候十几秒就可以搞定 import time import xlrd from selenium import webdriverdef read_excel(row,col):# ...
最新文章
- WIN10下Java环境变量配置
- 耗时 2 年,用 8.5 万块乐高积木最牛复刻 Apple Park
- 税务系统问题分析 来自CSNA论坛
- 【概念信息】成本中心计划
- CString::Format
- tesseract 提升 速度_京东研发效能提升,从正确地实施度量开始
- sendgrid java_java – SendGrid电子邮件API,发送电子邮件附件
- spark运行wordcount
- OpenCV waitKey 无法正常捕捉方向键(上下左右),总结和解决方案,可以用waitKeyEx...
- 《人.地.城》读书笔记
- HTML5后台管理模板
- oracle显示连接超时,Oracle 12179:tns:连接超时的问题
- C#:实现Zhang Suen细化算法(附完整源码)
- Access数据类型和SQL数据类型
- python英语单词 扇贝英语安卓下载_扇贝单词英语版
- 替代A4988的微型打印机驱动TMI8421国产电机驱动芯片
- 主页(一)01-搜索栏-顶部搜索栏布局
- 【JavaSE】网络编程(606~630)
- C语言的高级编程(一)
- 死亡的意思就是没有任何意义
热门文章
- python 画树 递归_python递归函数绘制分形树的方法
- python getattr_详解 Python 的二元算术运算,为什么说减法只是语法糖?
- python函数模块化教程_【软件测试教程】Python模块化以及内置模块的使用
- 数据结构——二叉树的双序遍历
- mysql mysqladmin 介绍_Mysql—mysqladmin 命令详解
- java当中用UDP实现相互交流
- prim算法和kruskal算法(C语言)
- C++map容器-大小和互换
- 位向量(bit vector)(算法导论第十一章11.1-2)
- 题目 1886: [蓝桥杯][2017年第八届真题]包子凑数(欧几里得+完全背包)