二分:[BJWC2008]秦腾与教学评估

洛谷传送门
在这里插入图片描述在这里插入图片描述

解析

因为至多有一个单数
假设其位置为k,1-i的累加和为s[i]
则s[1]-s[k-1]全是偶数
s[k]-s[max]全是奇数
答案呈单调性,可以用二分算法
check函数(计算前缀和)也很容易用O(n)写出:

long long check(int x){long long tot=0;for(int i=1;i<=n;i++){if(p[i].b<=x){tot += (p[i].b-p[i].a)/p[i].m+1;}else if(p[i].a>x) continue;else{tot += (x-p[i].a)/p[i].m+1;}}return tot;
}

(时间复杂度应该可以更优,但这样够了,大脑就不想动了。。。)
两个地方要加1,因为排头有一个,之后的个数这是长度除间隔的地板除法
然后二分枚举位置判断奇偶即可

PS:不开longlong见祖宗

代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#include<string>
#include<queue>
#include<vector>
using namespace std;
const int M=1e9;
long long n,t;
long long mx=0;
struct node{long long a,b,m;
}p[200500];
long long check(int x){long long tot=0;for(int i=1;i<=n;i++){if(p[i].b<=x){tot += (p[i].b-p[i].a)/p[i].m+1;}else if(p[i].a>x) continue;else{tot += (x-p[i].a)/p[i].m+1;}}return tot;
}
int main(){scanf("%lld",&t);for(int k=1;k<=t;k++){mx=0;scanf("%lld",&n); for(int i=1;i<=n;i++){scanf("%lld%lld%lld",&p[i].a,&p[i].b,&p[i].m);mx=max(mx,p[i].b);}long long st=0,ed=mx+1;while(st<ed){long long mid=(st+ed) >> 1;if(check(mid)%2==1) ed=mid;else st=mid+1;}if(st==mx+1){//返回mx+1,说明全是偶数,无懈可击printf("Poor QIN Teng:( \n");continue;}printf("%lld %lld\n",st,check(st)-check(st-1));}return 0;
}

AC快乐!!!

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

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

相关文章

微软Azure予力Green Dot客服成就不凡

点击蓝字关注我碧点公司&#xff08;Green Dot&#xff09;是仔细聆听消费者心声&#xff0c;以消费者为导向的金融科技创新公司&#xff0c;致力于为大众带来高效、便捷与体验舒适的个人银行业务。Green Dot创造了预付借记卡产业&#xff0c;也是美国最大的可增值预付借记卡和…

2020 ICPC亚洲区域赛(沈阳)H-The Boomsday Project(双指针+dp)

H-The Boomsday Project Code1 暴力我为人人区间转移 O{N∑qlog⁡N}O\{N\sum q\log N \}O{N∑qlogN} #include<bits/stdc.h> using namespace std; using lllong long; template <class Tint> T rd() {T res0;T fg1;char chgetchar();while(!isdigit(ch)) {if(c…

倍增:st表(模板)(洛谷P3865)

[传送门](https://www.luogu.com.cn/problem/P38 解析 板子题最棒了 用mx[i][j]存储以i为起点&#xff0c;长度为2^j次方的区间内的max 分成前后两段&#xff0c;则可以得到递推式&#xff1a; mx[i][k]max(mx[i][k-1],mx[imi[k-1]][k-1]);而关于初始化&#xff0c;显然&…

首届大湾区 DevOps/微服务秋季分享会圆满落幕!

在科技迅速发展的时代&#xff0c;传统行业积极开展数字化转型以在激烈竞争中脱颖而出&#xff0c;新兴行业不停歇地验证业务模式以找准市场定位&#xff1b;软件与行业变得密不可分&#xff0c;各行各业如何快速响应软件需求&#xff0c;已经成为直接关系到企业核心利益的关键…

牛客题霸 [ 大数加法]C++题解/答案

牛客题霸 [ 大数加法]C题解/答案 题解&#xff1a; 本质就是模拟加法运算 想要让s与t长度统一&#xff0c;不足的部分用0来补充 然后从最后一位开始&#xff0c;两个数相加&#xff0c;同时如果超过10&#xff0c;就把多的部分加到下一位 其实就是我们小学在草稿纸上运算加法…

codeforces1012 B. Chemical table(并查集+思维)

B. Chemical table One of the way to solve this problem is to interprete the cells in 2d matrix as an edge in the bipartite graph, that is a cell (i, j) is an edge between i of the left part and j of the right part. 将行号放一边&#xff0c;列号放一边构造…

P7099-[yLOI2020]灼【数学期望,结论】

正题 题目链接:https://www.luogu.com.cn/problem/P7099 题目大意 给出nnn个坐标轴上的点&#xff0c;qqq次询问从某点出发每次等概率向左或者向右一格求到达某个给出点的期望步数。 保证每个询问点左右都有目标点 1≤n≤105,1≤q≤5106,1≤xi,yi≤1091\leq n\leq 10^5,1\leq…

P4258-[WC2016]挑战NPC【带花树】

正题 题目链接:https://www.luogu.com.cn/problem/P4258 题目大意 给出nnn个球&#xff0c;mmm个篮筐&#xff0c;每个球都可以被放入一些特定的篮筐&#xff0c;每个球都要放&#xff0c;要求球的个数小于等于111的篮筐数量最多。 保证有解&#xff0c;输出方案。 1≤T≤5,1…

.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了

写在前面上篇文章我们讲了如在在实际项目开发中使用Git来进行代码的版本控制&#xff0c;当然介绍的都是比较常用的功能。今天我再带着大家一起熟悉下一个ORM框架Dapper&#xff0c;实例代码的演示编写完成后我会通过Git命令上传到GitHub上&#xff0c;正好大家可以再次熟悉下G…

倍增:喷泉 深度解析(洛谷P7167)

洛谷传送门 解析 什么破题 数据范围来看很明显最多到nlogn 首先&#xff0c;对于样例进行一下分析&#xff1a; 我们可以把它转化为一棵树&#xff1a; 每一个根都有对应的权&#xff0c;给你一个结点和加权和&#xff0c;问能爬到哪里 既然是树&#xff0c;自然要找爸爸…

2021牛客暑期多校训练营3 B-Black and white(思维+最小生成树)

B-Black and white 效仿codeforces1012 B. Chemical table&#xff08;并查集思维&#xff09;&#xff0c;只不过边带权&#xff0c;是的nm个点联通&#xff0c;显然就是求最小生成树。 Code1 Kruskal O(n2log⁡n2)O(n^2\log n^2)O(n2logn2) #include<bits/stdc.h> u…

牛客题霸 [ 实现二叉树先序,中序和后序遍历]C++题解/答案

牛客题霸 [ 实现二叉树先序&#xff0c;中序和后序遍历]C题解/答案 题目描述 分别按照二叉树先序&#xff0c;中序和后序打印所有的节点。 题解&#xff1a; 先序&#xff0c;中序&#xff0c;后序都是按照各自规律的 先序的遍历顺序是中前后 中序是前中后 后序是前后中 这…

P5163-WD与地图【tarjan,整体二分,线段树合并】

正题 题目链接:https://www.luogu.com.cn/problem/P5163 题目大意 给出nnn个点mmm条有向边&#xff0c;点有权值&#xff0c;要求支持操作 删除一条边修改一个点的权值求一个点所在强连通分量中前kkk大权值和 1≤n≤105,1≤m,q≤21051\leq n\leq 10^5,1\leq m,q\leq 2\times…

分布式系统(微服务架构)的一致性和幂等性问题相关概念解析

前言什么是分布式系统?关于这点其实并没有明确且统一的定义。在我看来,只要一个系统满足以下几点就可以称之为分布式系统系统由物理上不同分布的多个机器节点组成系统的多个节点通过网络进行通信,协调彼此之间的工作。系统作为整体统一对外提供服务,其分布式细节对客户端透明。…

hash:奶牛看地图(洛谷P3405 [USACO16DEC]Cities and States S)

洛谷传送门 解析 其实就是每组2个长度为2的字符串统计交叉相等的个数 每个序列可以用一个26进制的数来表示&#xff0c;总要加个标签&#xff0c;勉强算hash。。&#xff08;想叫《水题》 &#xff09; 最大值为26*26&#xff08;ZZ&#xff09; 所以可以开一个二维数组来进…

牛客题霸 [两个链表的第一个公共结点] C++题解/答案

牛客题霸 [两个链表的第一个公共结点] C题解/答案 题目描述 输入两个链表&#xff0c;找出它们的第一个公共结点。&#xff08;注意因为传入数据是链表&#xff0c;所以错误测试数据的提示是用其他方式显示的&#xff0c;保证传入数据是正确的&#xff09; 题解&#xff1a;…

L. Mod(预处理+分块)

L.Mod 题目大意 给定一个序列和 l,r,kl,r, kl,r,k&#xff0c;询问 [l,r][l,r][l,r] 中的数字 mod kkk 的最大值,1≤n,k≤500001\leq n,k\leq 500001≤n,k≤50000 分块&#xff0c;预处理fi,jf_{i,j}fi,j​表示第iii块mod jjj的最大值。 对于每一块&#xff0c;维护 mximx_i…

AT2667-[AGC017D]Game on Tree【SG函数】

正题 题目链接:https://www.luogu.com.cn/problem/AT2667 题目大意 给出nnn个点的一棵树&#xff0c;每次可以割掉一条和根节点联通的边&#xff0c;轮流操作直到不能操作的输&#xff0c;求是否先手必胜。 1≤n≤21051\leq n\leq 2\times 10^51≤n≤2105 解题思路 挺巧妙的…

bfs:01迷宫(洛谷P1141)

洛谷传送门 解析 乍一看&#xff1a;bfs板子题 冰法师最棒了 然鹅 看了一眼数据范围 心中已有画面 《面 堂 发 黑》 怎么办嘞&#xff1f; 我们想到&#xff1a; 因为该题来与去的可逆性 我们搜一次后&#xff0c;这些点以后都不会再用到 而且每次覆盖到的所有点答案都是…

有关C# 8.0、.NET Framework 4.8与NET Standard 2.1的一个说明

早在本月12日&#xff0c;微软官方的.NET Blog发布了一篇名为《Building C# 8.0》的文章&#xff0c;介绍了很多C# 8.0的新特性。不过本文主要讨论的并不是C# 8.0的新特性&#xff0c;而是存在于这篇文章中的一段文字&#xff1a;Most of the C# 8.0 language features will ru…