题目链接

http://noi-test.zzstep.com/contest/0x08%E3%80%8C%E5%9F%BA%E6%9C%AC%E7%AE%97%E6%B3%95%E3%80%8D%E7%BB%83%E4%B9%A0/0805%20%E9%98%B2%E7%BA%BF%EF%BC%88%E7%A7%A6%E8%85%BE%E4%B8%8E%E6%95%99%E5%AD%A6%E8%AF%84%E4%BC%B0%EF%BC%89

分析

二分防具个数是奇数的位置,统计该位置即之前共有多少防具,看总和是否为奇数。

AC代码

#include <cstdio>
#include <algorithm>using namespace std;inline int read() {int num = 0;char c = getchar();while (c < '0' || c > '9') c = getchar();while (c >= '0' && c <= '9')num = num * 10 + c - '0', c = getchar();return num;
}const int maxn = 2e5 + 5;struct Raid {int s, e, d;bool operator < (const Raid& rhs) const {return s < rhs.s;}
} raid[maxn];int n;inline int judge(int x) {int sum = 0;for (int i = 1; raid[i].s <= x && i <= n; ++i)sum += (min(x, raid[i].e) - raid[i].s) / raid[i].d + 1;return sum & 1;
}int main() {int t = read();while (t--) {n = read();for (int i = 1; i <= n; ++i)raid[i].s = read(), raid[i].e = read(), raid[i].d = read();sort(raid + 1, raid + n + 1);int l = 1, r = (1ll << 31) - 1;while (l < r) {int mid = (1ll * l + r) >> 1;if (judge(mid)) r = mid;else l = mid + 1;}if (!judge(l)) printf("There's no weakness.\n");else {int cnt = 0;for (int i = 1; i <= n; ++i) {if (raid[i].s > l) break;if (raid[i].e >= l && (l - raid[i].s) % raid[i].d == 0) ++cnt;}printf("%d %d\n", l, cnt);}}return 0;
}

CH0805 防线 二分相关推荐

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

    $ CH~0805~ $ 防线 (二分值域,前缀和,特殊性质) $ solution: $ 注意博主所给题面的输出和原题有些不同 这道题当时想了很久很久,就是想不到怎么写.果然还是太 $ vegeta ...

  2. CH - 0805 防线(二分+思维)

    题目链接:点击查看 题目大意:假设现在有一个数轴,一共有n组防具,每组防具给出的形式为S,D,E,在数轴上的分布为:S,S+D,S+2D....S+KD,保证S+KD<=E 现在规定数轴上某个点 ...

  3. $2019$ 暑期刷题记录 $2$(基本算法专题)

    $ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ $ BZOJ~1958~Strange~Towers~of~Hanoi $ (动态规划,递推) 题目大意: 求有 ...

  4. AcWing120防线 经典题二分+前缀和+等差数列

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

  5. #Star Way To Heaven 优化二分 /prim凉宫春日的忧郁

    之前是贪心看不粗来,现在二分也看不粗来了,QAQ... 审题清楚,别没看懂题就忙着暴搜,小w不一定走整点,可以走直线 其实,看到就应该想到二分了 那么其实二分的答案是作为每个点的半径以圆的形式出现的, ...

  6. 《算法竞赛进阶指南》防线

    题目链接:http://exam.upc.edu.cn/problem.php?cid=1430&pid=24 问题 Y: 防线 时间限制: 1 Sec  内存限制: 128 MB 提交: 8 ...

  7. COGS 1022 防线

    1022. [Nescafé II] 防线 ★   输入文件: defline.in   输出文件: defline.out    简单对比 时间限制:1 s   内存限制:128 MB 描述 lsp ...

  8. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  9. 分治算法的设计思想(二分检索、二分归并排序)

    分治策略思想: 将原问题划分或者归结为规模较小的子问题. 递归或迭代求解每一个问题. 将子问题的解综合得到原问题的解. 性质: 子问题与原问题具有相同的性质. 子问题的求解彼此独立. 划分时子问题的规 ...

  10. LeetCode简单题之二分查找

    题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: n ...

最新文章

  1. fabric 启动peer_编写 Fabric 链码的一般准则
  2. Django的路由系统
  3. 网上看的一篇文章,感觉会给程序员一些启发
  4. JavaScript不区分 '
  5. redis hash数据类型常用命令
  6. pycharm更改为系统python3_今天配置好python3 装好了pycharm 就新建一个django一直改不好...
  7. 用iframe transform: scale() 缩小后点不到按钮_“打分”或者“打多少分”用英文可以怎样去表达?...
  8. LaTeX双栏模板插入通栏公式(跨栏插图)
  9. Oracle Database Appliance
  10. torchtext处理文本数据——将文本变为embedding(学习三)
  11. 关闭java程序脚本-linux
  12. 免费HTTP数据抓包Fiddler2[4.6.1.2]以及显示中文包内容的方法
  13. c# 提取程序中的资源文件 .exe .resources .resx
  14. CentOS 5.5 使用 EPEL 和 RPMForge 软件库
  15. 函数式编程( Functional)与命令式编程( Imperative)对比
  16. c语言模拟试卷答案,C语言模拟试卷2(带答案)
  17. C# 修改打印机名称
  18. C++ MFC字体设置
  19. 使用Arctime生成各种格式的字幕文件
  20. love2d贪吃蛇---蛇

热门文章

  1. 使用antd-design-vue配合vue框架搭建项目使用组件显示英文的解决办法
  2. MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4
  3. threejs基于vue加载模型,让模型开启自动旋转 模型位置改变
  4. 中国大学mooc乐学python答案_中国大学mooc慕课_乐学Python_章节期末网课答案
  5. 侯捷C++八部曲笔记(一、面向对象)
  6. 【Python实例学习】用Python的xlsxwriter模块操作Excel表格,包括写入数据、样式设置、插入图片等
  7. arcgis多面体数据转面_ArcGIS多面体(multipatch)解析——引
  8. 浏览器如何工作(How browsers work)
  9. Vue项目引入移动端组件库--Mand Mobile
  10. oracle左外链接多表,sql – 在Oracle中的多个表的左外连接