首页 > 其他分享 >GZOI2024 Day2 T2 乒乓球

GZOI2024 Day2 T2 乒乓球

时间:2024-09-09 20:36:52浏览次数:11  
标签:lfloor le frac T2 Day2 rfloor GZOI2024 ZX sqrt

GZOI2024 Day2 T2【乒乓球】

学习了蔡队的题解

\(P,Q\le 10^{14}\)。

Alice 一定是赢了 \(Y\) 场比赛,每场比赛 \(X\) 局表示胜利,设 Bob 赢了 \(Z\) 场比赛。

那么每场比赛赢了的人一定赢了 \(X\) 局,输了的人一定赢了 \(<X\) 局。

有:

  1. \(Z<Y\)
  2. \(XY\le P\le XY+Z(X-1)\)
  3. \(ZX\le Q \le ZX+Y(X-1)\)

观察到在 \(ZX\le Q\) 和 \(Z<Y\) 的情况下,把 \(Z\) 取到最大一定是不劣的。感性理解一下,在 \(X,Y\) 固定的情况下,\(Z\) 越大,\(P,Q\) 可操作的空间也越大,更容易符合要求。

因此有 \(Z=\min\{Y-1,\lfloor \frac{Q}{X}\rfloor \}\)。

分类讨论。

  1. $Z=\lfloor \frac{Q}{X}\rfloor $:

则 \(Z\le Y-1\)。

显然此时第 \(2\) 个不等式恒成立。

由第 \(1\) 个不等式可以得到:\(Y\le \lfloor\frac{P}{X} \rfloor,Y\ge \lceil \frac{P-ZX+Z}{X}\rceil\),且 \(Y>Z\)。

因此,\(\max\{Z+1,\lceil \frac{P+Z}{X}\rceil-Z\}\le Y \le \lfloor\frac{P}{X} \rfloor\)。

首先按照 \(Z\) 的变化对 \(X\) 进行整除分块。可以证明 \(Z\) 一共有 \(O(\sqrt{Q})\) 种取值。分成 \(O(\sqrt{Q})\) 块。同时按照 \(\lfloor\frac{P}{X} \rfloor\) 进行分块,这样一共有 \(O(\sqrt{n}+\sqrt{P})\) 块。

\(\lceil \frac{P+Z}{X}\rceil=\lfloor \frac{P+Z-1}{X} \rfloor -1\)。

对于这个东西,当 \(X\le \sqrt{P}\) 的时候,因为 \(X\) 一定时 \(Z\) 也确定了,所以 \(\lfloor \frac{P+Z-1}{X} \rfloor\) 取值有 \(O(\sqrt{P})\) 个。

当 \(x> \sqrt{P}\) 的时候,\(Z<X\),所以 \(\lfloor \frac{P-1}{X} \rfloor\) 一定时,\(\lfloor \frac{P+Z-1}{X} \rfloor\) 也只有两种可能(\(+1\) 或相等)。所以 \(\lfloor \frac{P+Z-1}{X} \rfloor\) 的取值时 \(O(\sqrt{P})\) 的。

所以 \(P,Q\) 同阶,用 \(n\) 表示,一共只有 \(O(\sqrt{n})\) 块。

  1. \(Z=Y-1\)

\(Z<\lfloor \frac{Q}{X}\rfloor\)。

\(\therefore Y\le \lfloor \frac{Q}{X}\rfloor \\ \therefore Y\le \frac{Q}{X}\\ \therefore XY\le Q\)

把这两个式子搬下来:

\(XY\le P\le XY+Z(X-1)\\ ZX\le Q \le ZX+Y(X-1)\)

显然这两个式子左边恒成立。右边分别是:

  • \(P\le 2XY-X-Y+1\)
  • \(Q\le 2XY-X-Y\)

发现他们两长得差不多,设 \(R=\max\{P-1,Q\}\)。

则 \(R\le 2XY-X-Y\)。

变成 $X\ge \lceil \frac{R+Y}{2Y-1} \rceil =\lfloor \frac{R+Y-1}{2Y-1} \rfloor +1 $。

同 \(\lfloor \frac{P+Z-1}{X} \rfloor\) 的证明,\(\lfloor \frac{R+Y-1}{2Y-1} \rfloor\) 的取值也只有 \(O(\sqrt{n})\) 种。设 \(V=\lfloor \frac{R+Y-1}{2Y-1} \rfloor\),对于每一个 \(V\) 我们已经知道了 \(X\) 的取值范围,要求满足的 \(Y\) 的取值范围。

首先因为我们的 \(V\) 一定时按照合法的最小的 \(Y\) 来取的值,所以我们只需要找出 \(Y\) 的上界。即最后一个 \(Y\) 使得 \(\lfloor \frac{R+Y-1}{2Y-1} \rfloor = V\)。

\[\frac{R+Y-1}{2Y-1}\ge V \\ R+Y-1\ge 2YV-V \\ R+V-1\ge (2V-1)Y \\ Y \le \lfloor \frac{R+V-1}{2V-1} \rfloor \]

这样就解决了这道题目。总时间复杂度时 \(O(\sqrt{n})\)。

综上所述,感觉该题比较巧妙,而且细节较多,想要场切可能需要一个灵活的大脑(可惜我没有)。整除分块还是个不错的技巧的。

标签:lfloor,le,frac,T2,Day2,rfloor,GZOI2024,ZX,sqrt
From: https://www.cnblogs.com/liyixin0514/p/18405286

相关文章

  • 【题解】Solution Set - NOIP2024集训Day25 概率期望 dp
    【题解】SolutionSet-NOIP2024集训Day25概率期望dphttps://www.becoder.com.cn/contest/5515「QOJ2606」Gachapon\(f_{i,j}\):用一次合法的level-irolling能够抽到的\(j\)的期望个数。\(h_{i,j,k}\):在\(i\)次操作之内,抽到恰好\(k\)个\(j\)的概率。\[h_{i,j,k......
  • Ros2- Moveit2 - Visualizing Collisions(可视化碰撞)
    本节将引导您了解C++示例代码,该代码可让您在RViz中移动和与机器人手臂交互时可视化机器人本身与世界之间的碰撞接触点。入门运行代码使用Roslaunch启动文件直接从moveit_tutorials运行代码:roslaunchmoveit_tutorialsvisualizing_collisions_tutorial.launch现在......
  • ROS2 - Moveit2 - 创建Moveit插件(MoveIt Plugins)
    创建MoveIt插件本节详细说明了如何在ROS中添加插件。两个必需元素是基类和插件类。插件类继承自基类并覆盖其虚拟函数。用于此目的的主要库是pluginlib。本教程包含三种不同类型的插件,即运动规划器、控制器管理器和约束采样器。运动规划器插件在本节中,我们将展示如何将新......
  • GZOI2024 Day1 T2 card
    GZOI2024Day1T2card首先最后一张牌可能不会弃满\(b_i\)张牌。而如果我们要打出若干张牌,肯定想要最后打出\(b_i\)最大的那张牌,这样显然更划算。因此要先按照\(b_i\)排序。首先很容易想到背包。把同类牌拆成\(c_i\)个,然后直接背包:\(f_{i,j}\)表示遍历到第\(i\)张牌,......
  • IBM AI Developer 专业证书专项课程-Introduction to Software Engineering-Unit2-前
    前端网站开发前端开发简介用户交互:用户在浏览在线购物网站时,主要与网站的前端进行交互。这包括浏览不同的页面、选择不同的产品类别、比较产品等活动。前端的作用:前端是用户直接接触的部分,它决定了用户如何与网站或应用进行交互,以及他们的视觉体验。网站开发基础HTML(Hyp......
  • day21
    非递减子序列classSolution{public:voidbacktracking(vector&nums,intstart){if(path.size()>1){ret.push_back(path);}if(start==nums.size()){return;}unordered_setuset;for(inti=start;i<nums.size();++i){if((!path.empty()&......
  • Study Plan For Algorithms - Part26
    1.礼物的最大价值在一个m*n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?方法一:de......
  • Study Plan For Algorithms - Part27
    1.最长不含重复字符的子字符串请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。方法一:deflengthOfLongestSubstring(s):n=len(s)max_len=0start=0char_index={}forendinrange(n):ifs[en......
  • day20打卡
    复原IP地址classSolution{public:boolisValid(strings,intstart,intend){if(start>end){returnfalse;}if(s[start]=='0'&&start!=end){//0开头的数字不合法returnfalse;}intnum=0;for(inti=start;i<=end;i++){i......
  • GZOI2024 Day1 T3 coin
    coin(GZOI2024Day1T3)题目大意给你\(n\)个硬币,每个硬币有属性\(a_i,b_i,p_i\),表示有\(p_i\)的概率值为\(a_i\),有\(1-p_i\)的概率值为\(b_i\)。所有的\(a_i\)所有的\(b_i\)均不同。有\(q\)次询问,询问有两种:给定\(l,r,k\),问\([l,r]\)的硬币值都\(<\)第\(......