LuoguP7441 「EZEC-7」Erinnerung 题解
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 题解的更多相关文章
- 「GXOI / GZOI2019」简要题解
「GXOI / GZOI2019」简要题解 LOJ#3083. 「GXOI / GZOI2019」与或和 https://loj.ac/problem/3083 题意:求一个矩阵的所有子矩阵的与和 和 ...
- loj#2054. 「TJOI / HEOI2016」树
题目链接 loj#2054. 「TJOI / HEOI2016」树 题解 每次标记覆盖整棵字数,子树维护对于标记深度取max dfs序+线段树维护一下 代码 #include<cstdio> ...
- 【题解】#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT)
[题解]#6622. 「THUPC 2019」找树 / findtree(Matrix Tree+FWT) 之前做这道题不理解,有一点走火入魔了,甚至想要一本近世代数来看,然后通过人类智慧思考后发现, ...
- 洛谷比赛 「EZEC」 Round 4
洛谷比赛 「EZEC」 Round 4 T1 zrmpaul Loves Array 题目描述 小 Z 有一个下标从 \(1\) 开始并且长度为 \(n\) 的序列,初始时下标为 \(i\) 位置的数 ...
- 「POJ 3666」Making the Grade 题解(两种做法)
0前言 感谢yxy童鞋的dp及暴力做法! 1 算法标签 优先队列.dp动态规划+滚动数组优化 2 题目难度 提高/提高+ CF rating:2300 3 题面 「POJ 3666」Making th ...
- LOJ #2542. 「PKUWC 2018」随机游走(最值反演 + 树上期望dp + FMT)
写在这道题前面 : 网上的一些题解都不讲那个系数是怎么推得真的不良心 TAT (不是每个人都有那么厉害啊 , 我好菜啊) 而且 LOJ 过的代码千篇一律 ... 那个系数根本看不出来是什么啊 TAT ...
- LOJ #2802. 「CCC 2018」平衡树(整除分块 + dp)
题面 LOJ #2802. 「CCC 2018」平衡树 题面有点难看...请认真阅读理解题意. 转化后就是,给你一个数 \(N\) ,每次选择一个 \(k \in [2, N]\) 将 \(N\) 变 ...
- LOJ #2541. 「PKUWC 2018」猎人杀(容斥 , 期望dp , NTT优化)
题意 LOJ #2541. 「PKUWC 2018」猎人杀 题解 一道及其巧妙的题 , 参考了一下这位大佬的博客 ... 令 \(\displaystyle A = \sum_{i=1}^{n} w_ ...
- LOJ #2540. 「PKUWC 2018」随机算法(概率dp)
题意 LOJ #2540. 「PKUWC 2018」随机算法 题解 朴素的就是 \(O(n3^n)\) dp 写了一下有 \(50pts\) ... 大概就是每个点有三个状态 , 考虑了但不在独立集中 ...
随机推荐
- 洛谷 P7516 - [省选联考 2021 A/B 卷] 图函数(Floyd)
洛谷题面传送门 一道需要发现一些简单的性质的中档题(不过可能这道题放在省选 D1T3 中偏简单了?) u1s1 现在已经是 \(1\text{s}\) \(10^9\) 的时代了吗?落伍了落伍了/ ...
- Codeforces 997D - Cycles in product(换根 dp)
Codeforces 题面传送门 & 洛谷题面传送门 一种换根 dp 的做法. 首先碰到这类题目,我们很明显不能真的把图 \(G\) 建出来,因此我们需要观察一下图 \(G\) 有哪些性质.很 ...
- AT695 マス目
AT695 マス目 本题选自 DP 优化方法大杂烩 状压部分. 这个题很 nb.下文记 \(n=H\),\(m=W\). 对于每一列,如果只记录一个格子是否为黑色,那么发现它无法处理从右边绕到左边再绕 ...
- linux—查看所有的账号以及管理账号
用过Linux系统的人都知道,Linux系统查看用户不是会Windows那样,鼠标右键看我的电脑属性,然后看计算机用户和组即可. 那么Linux操作系统里查看所有用户该怎么办呢?用命令.其实用命令就能 ...
- Python中类的各式方法介绍
本文类的方法介绍包括类方法.属性方法.静态方法.修改属性方法等内置装饰器装饰的方法,以及类的一些特殊成员方法 1. 类的特殊成员方法 1.1 构造方法 # -*- coding:utf-8 -*- # ...
- cp -拷贝文件出现错误
对于cp -a最主要的用法是在保留原文件属性的前提下复制文件. 如果出现了拷贝文件错误,在文件前面加上-a 即可
- ui自动化测试,页面方法的使用
悬浮下拉框 的设置选择 下拉框的选择 显性等待 双击, ActionChains类的方法行动链 提示框 双击,右击 双击用到行动连,提示框用到Alert的类 右击用到的也是行动连 UI自动化测试 #h ...
- C#判断是否有中文
using System.Text.RegularExpressions; Regex reg = new Regex(@"[\u4e00-\u9fa5]"); if (reg.I ...
- C#数字验证
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- Sharding-JDBC 实现垂直分库水平分表
1.需求分析