Content

给定 \(x,y,K\)。定义两个数列 \(c,e\),其中 \(c_i=\begin{cases}x\cdot i&x\cdot i\leqslant K\\-K&\text{otherwise}\end{cases}\),\(e_i=\begin{cases}y\cdot i&y\cdot i\leqslant K\\-K&\text{otherwise}\end{cases}\)。每次操作从两个数列中各选取一个数,满足两个数之和 \(\geqslant K\)。一个数选取了之后不能再重复取。问你一共能进行多少次操作。

数据范围:\(t\) 组数据,\(1\leqslant t\leqslant 10^5\),\(0\leqslant x,y\leqslant 10^{10}\),\(1\leqslant K\leqslant 10^{10}\)。

Solution

不难发现,如果 \(x,y\neq0\),那么答案必定是 \(\min\{\left\lfloor\dfrac Kx\right\rfloor,\left\lfloor\dfrac Ky\right\rfloor\}\)。

证明:

(1) \(y\geqslant x\),则对于 \((c_n,e_1)\) 这一对数(\(n\) 表示能够使 \(c_i\geqslant 0\) 成立的最大的 \(i\)),因为 \(c_n+x\geqslant K\),而 \(y\geqslant x\),所以必然有 \(c_n+e_1=c_n+y\geqslant K\)。后面的 \((c_{n-1},e_2),\dots\) 也显然成立。

(2)\(y\leqslant x\),则对于 \((c_1,e_m)\) 这两对 (\(m\) 含义类比于上面的 \(n\)),因为 \(e_m+y\geqslant K\),而 \(x\geqslant y\),所以必然有 \(c_1+e_m=e_m+x\geqslant K\)。后面的 \((c_2,e_{m-1}),\dots\) 也显然成立。

证明完之后我们再来看看 \(x,y\) 中至少有一个等于 \(0\) 时的情况:

(1)\(x,y\) 中有且仅有一个等于 \(0\)。则我们需要看是否有 \(\max\{x,y\}\mid K\),如果有的话,那我们可以拿一个 \(K\) 和 \(0\) 组成一对,这对数的和恰好等于 \(K\),此时答案为 \(1\);否则,答案为 \(0\)。

(2)\(x,y\) 都等于 \(0\),显然,由于 \(K\geqslant 1\),且无法选出一对数使得它们的和为正整数,所以答案为 \(0\)。

分类讨论完这些情况后,代码就不难打了。

Code

int main() {
MT {
ll x = Rll, y = Rll, k = Rll;
if(!x && y && !(k % y)) puts("1");
else if(!y && x && !(k % x)) puts("1");
else write(min((!x ? 0 : k / x), (!y ? 0 : k / y))), puts("");
}
return 0;
}

LuoguP7441 「EZEC-7」Erinnerung 题解的更多相关文章

  1. 「GXOI / GZOI2019」简要题解

    「GXOI / GZOI2019」简要题解 LOJ#3083. 「GXOI / GZOI2019」与或和 https://loj.ac/problem/3083 题意:求一个矩阵的所有子矩阵的与和 和 ...

  2. loj#2054. 「TJOI / HEOI2016」树

    题目链接 loj#2054. 「TJOI / HEOI2016」树 题解 每次标记覆盖整棵字数,子树维护对于标记深度取max dfs序+线段树维护一下 代码 #include<cstdio> ...

  3. 【题解】#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT)

    [题解]#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT) 之前做这道题不理解,有一点走火入魔了,甚至想要一本近世代数来看,然后通过人类智慧思考后发现, ...

  4. 洛谷比赛 「EZEC」 Round 4

    洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...

  5. 「POJ 3666」Making the Grade 题解(两种做法)

    0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making th ...

  6. LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)

    写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...

  7. LOJ #2802. 「CCC 2018」平衡树(整除分块 + dp)

    题面 LOJ #2802. 「CCC 2018」平衡树 题面有点难看...请认真阅读理解题意. 转化后就是,给你一个数 \(N\) ,每次选择一个 \(k \in [2, N]\) 将 \(N\) 变 ...

  8. LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)

    题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_ ...

  9. LOJ #2540. 「PKUWC 2018」随机算法(概率dp)

    题意 LOJ #2540. 「PKUWC 2018」随机算法 题解 朴素的就是 \(O(n3^n)\) dp 写了一下有 \(50pts\) ... 大概就是每个点有三个状态 , 考虑了但不在独立集中 ...

随机推荐

  1. 洛谷 P7516 - [省选联考 2021 A/B 卷] 图函数(Floyd)

    洛谷题面传送门 一道需要发现一些简单的性质的中档题(不过可能这道题放在省选 D1T3 中偏简单了?) u1s1 现在已经是 \(1\text{s}\)​ \(10^9\)​ 的时代了吗?落伍了落伍了/ ...

  2. Codeforces 997D - Cycles in product(换根 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 一种换根 dp 的做法. 首先碰到这类题目,我们很明显不能真的把图 \(G\) 建出来,因此我们需要观察一下图 \(G\) 有哪些性质.很 ...

  3. AT695 マス目

    AT695 マス目 本题选自 DP 优化方法大杂烩 状压部分. 这个题很 nb.下文记 \(n=H\),\(m=W\). 对于每一列,如果只记录一个格子是否为黑色,那么发现它无法处理从右边绕到左边再绕 ...

  4. linux—查看所有的账号以及管理账号

    用过Linux系统的人都知道,Linux系统查看用户不是会Windows那样,鼠标右键看我的电脑属性,然后看计算机用户和组即可. 那么Linux操作系统里查看所有用户该怎么办呢?用命令.其实用命令就能 ...

  5. Python中类的各式方法介绍

    本文类的方法介绍包括类方法.属性方法.静态方法.修改属性方法等内置装饰器装饰的方法,以及类的一些特殊成员方法 1. 类的特殊成员方法 1.1 构造方法 # -*- coding:utf-8 -*- # ...

  6. cp -拷贝文件出现错误

    对于cp -a最主要的用法是在保留原文件属性的前提下复制文件. 如果出现了拷贝文件错误,在文件前面加上-a 即可

  7. ui自动化测试,页面方法的使用

    悬浮下拉框 的设置选择 下拉框的选择 显性等待 双击, ActionChains类的方法行动链 提示框 双击,右击 双击用到行动连,提示框用到Alert的类 右击用到的也是行动连 UI自动化测试 #h ...

  8. C#判断是否有中文

    using System.Text.RegularExpressions; Regex reg = new Regex(@"[\u4e00-\u9fa5]"); if (reg.I ...

  9. C#数字验证

    using System; using System.Collections; using System.Configuration; using System.Data; using System. ...

  10. Sharding-JDBC 实现垂直分库水平分表

    1.需求分析