经典二分:秦腾与教学评估

秦腾与教学评估

题面描述
在秦腾进入北京大学学习的第一个学期,就不幸遇到了前所未有的教学评估。在教学评估期间,同学们被要求八点起床,十一点回宿舍睡觉,不准旷课,上课不准迟到,上课不准睡觉……甚至连著名的北大三角地也在教学评估期间被以影响校容的理由被拆除。这些“变态”规定令习惯了自由自在随性生活学习的北大同学叫苦不迭。这一天又到了星期五,一大早就是秦腾最不喜欢的高等代数课。可是因为是教学评估时期,不能迟到,于是他在八点五分的时候挣扎着爬出了宿舍,希望能赶快混进在八点钟已经上课了的教室。可是,刚一出宿舍楼门他就傻眼了:从宿舍到教学楼的路上已经站满了教学评估团的成员。他们的目的就是抓住像他这样迟到的学生,扣除学校的分数。秦腾当然不能让评估团得逞。他经过观察发现,整个评估团分成了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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高性能动态编译库Natasha发布1.0版本!

一、 前言对于开源贡献者&#xff0c;Emit和表达式树不是陌生的字眼&#xff0c;IL的动态特性为封装工作带来了极大的方便&#xff0c;会Emit的开发者可以说驾驭了大部分的高性能、高动态的编程技巧。纵观ef、dapper、json.net等第三方常用库&#xff0c;哪个能脱离emit而独善其…

Codeforces Round #245 (Div. 1) E. Points and Segments 欧拉回路 + 建模

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 考虑对于线段&#xff0c;如何建模。 我们考虑先将线段转换成左闭右开的形式&#xff0c;将左右点连起来。 再考虑每个点&#xff0c;将所有离散化后的点拿出来&#xff0c;每个点都有一个…

最大子序和:单调队列维护一个上升序列

最大子序和 输入一个长度为n的整数序列&#xff0c;从中找出一段长度不超过m的连续子序列&#xff0c;使得子序列中所有数的和最大。 注意&#xff1a; 子序列的长度至少是1。 输入格式 第一行输入两个整数n,m。 第二行输入n个数&#xff0c;代表长度为n的整数序列。 同一行…

微软.Net Core 3.0 预览版7发布:大幅减少 SDK 空间大小

据悉&#xff0c;这个预览版是 .Net Core 3 中重要的版本&#xff0c;可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话&#xff09;&#xff0c;故可在生产环境进行开发和部署。Windows, macOS 和 Linux 版本的Download .NET …

2016-2017 Central Europe Regional Contest Hangar Hurdles 克鲁斯卡尔重构树 + 建图

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 有一个n∗nn*nn∗n的网格图&#xff0c;有若干位置有障碍&#xff0c;有qqq个询问&#xff0c;每次询问给出两个点坐标x1,y1,x2,y2x1,y1,x2,y2x1,y1,x2,y2,询问把一个正方形箱子从x1,x2x1,x2x1,x2推到y1,y2y…

5门可能衰落的编程语言

专注于为北美地区的科技专业人士提供行业见解和分析&#xff0c;以及提供求职消息的技术职业消息服务网站 Dice Insights 近日发表了一篇题为《5 Programming Languages That Are Probably Doomed》的文章。作者主要根据 TIOBE 和 RedMonk 这两个编程语言排行榜&#xff0c;以及…

POJ3320 Jessica's Reading Problem 尺取法

Jessica’s Reading Problem、 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22716 Accepted: 7687 Description Jessica’s a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam is coming, yet she has spent little …

#2686. 「BalticOI 2013」雪地足迹 双端队列01bfs + 模型转换

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个n∗mn*mn∗m的图&#xff0c;如果某个位置字符为RRR代表兔子走过&#xff0c;如果为FFF代表狐狸走过&#xff0c;如果...代表谁都没走过&#xff0c;每只动物必须从左上角进来&#xff0c;右下角出去…

.NET加水印/验证码的NuGet包

.NET加水印/验证码的NuGet包 我的在前两篇文章中&#xff0c;我介绍了使用Direct2D给图片加水印/验证码&#xff0c;今天我将其进行了封装&#xff0c;发布了一个NuGet包Sdcb.Imaging&#xff1a;<PackageReference Include"Sdcb.Imaging" Version"1.1.0&quo…

hdu1686:KMP板子

题目链接 题目大意就是给你两个字符串&#xff0c;求出第一个字符串在第二个字符串中出现的次数。 如果我们暴力匹配的话&#xff0c;复杂度是 len(first) * len(second) 对于题目给的 1e4 * 1e6 显然暴力不可取&#xff0c; 这里就用到 KMP 。 说到 KMP 最难理解的就是 next…

集群故障处理之处理思路以及健康状态检查(三十三)

前言 按照笔者的教程&#xff0c;大家应该都能够比较顺畅的完成k8s集群的部署&#xff0c;不过由于环境、配置以及对Linux、k8s的不了解会导致很多问题、异常和故障&#xff0c;这里笔者分享一些处理技巧和思路&#xff0c;以及部分常见的问题&#xff0c;以供大…

Educational Codeforces Round 32 G. Xor-MST 01tire + 分治 + Boruvka

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn序列aaa&#xff0c;每两个点之间的边权为ai⊕aja_i\oplus a_jai​⊕aj​&#xff0c;问你最小生成树的权值是多少。 n≤2e5,ai<230n\le2e5,a_i< 2^{30}n≤2e5,ai​<230 思路&am…

Trie初步

简单的描述就是一个字典树&#xff0c; 我们用下图来简单描述一下。 上述的字典树代表着 ab abc abk cd ca b 这六个单词&#xff0c;我们不难发现其中标记是红色的代表从一个伪根节点到这是一个完整的单词。不同的单词有重复的部分&#xff0c;例如accepted&#xff0c;accep…

XXI Open Cup. Grand Prix of Korea I. Query On A Tree 17 树剖 + 二分 + 树带权重心

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一棵树&#xff0c;每棵树初始权值都为000&#xff0c;现在给你两个操作&#xff1a; (1)(1)(1)将uuu的子树权值全部加111。 (2)(2)(2)将(u,v)(u,v)(u,v)路径上的点权值都加111。 每次输出一个点xxx,满…

使用Kubeadm创建k8s集群之节点部署(三十二)

前言 由于上次忘开申明原创&#xff0c;特再发一次。本篇部署教程将讲述k8s集群的节点&#xff08;master和工作节点&#xff09;部署&#xff0c;请先按照上一篇教程完成节点的准备。本篇教程中的操作全部使用脚本完成&#xff0c;并且对于某些情况&#xff08;比如镜…

Trie:hdu 4825、1251、1247、Poj 3764

hdu 4825链接 题目意思很简单&#xff0c;就是要求最大异或值的数。 我们可以从二进制的最高位开始选择&#xff0c;不断的排除一些数。我们先假设存在某些数字的二进制数是与当前查找的数不一样的&#xff0c;我们进入这一部分数进行查找&#xff0c;以此重复&#xff0c;不断…

Codeforces Round #675 (Div. 2) F. Boring Queries 区间lcm + 主席树

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn的序列aaa&#xff0c;qqq个询问&#xff0c;每次询问[l,r][l,r][l,r]内的lcmlcmlcm是多少&#xff0c;对1e971e971e97取模。 n≤1e5,a≤2e5,q≤1e5n\le1e5,a\le2e5,q\le1e5n≤1e5,a≤2e5,…

ASP.NET Core on K8S深入学习(2)部署过程解析与部署Dashboard

上一篇《K8S集群部署》中搭建好了一个最小化的K8S集群&#xff0c;这一篇我们来部署一个ASP.NET Core WebAPI项目来介绍一下整个部署过程的运行机制&#xff0c;然后部署一下Dashboard&#xff0c;完成可视化管理。本篇已加入了《.NET Core on K8S学习实践系列文章索引》&#…

字符Hash初步

兔子与兔子 很久很久以前&#xff0c;森林里住着一群兔子。 有一天&#xff0c;兔子们想要研究自己的 DNA 序列。 我们首先选取一个好长好长的 DNA 序列&#xff08;小兔子是外星生物&#xff0c;DNA 序列可能包含 26 个小写英文字母&#xff09;。 然后我们每次选择两个区间&…

02 | 健康之路 kubernetes(k8s) 实践之路 : 生产可用环境及验证

上一篇《 01 | 健康之路 kubernetes(k8s) 实践之路 : 开篇及概况 》我们介绍了我们的大体情况&#xff0c;也算迈出了第一步。今天我们主要介绍下我们生产可用的集群架设方案。涉及了整体拓补图&#xff0c;和我们采用的硬件配置&#xff0c;目前存在的问题等内容。遵循上一篇提…