Codeforces-1604 D: Moderate Modular Mode
Codeforces 1604D: Moderate Modular Mode
题目
题目传送门:codeforces 1604D
题目截图
样例描述
题目大意
给定两个偶数 x x x 和 y y y,需要找到任意一个 1 ≤ n ≤ 2 × 1 0 18 1 \le n \le 2 \times 10^{18} 1≤n≤2×1018,使得 n m o d x = y m o d n n \mod x = y \mod n nmodx=ymodn。题目保证解是存在的。
题目解析
可以先从简单的地方开始尝试,比如 n = x + y n=x+y n=x+y ,此时 ( x + y ) m o d x = y m o d ( x + y ) (x+y)\mod x= y \mod (x+y) (x+y)modx=ymod(x+y),利用模运算可以导出 y m o d x = y y \mod x = y ymodx=y,所以,当 x > y x > y x>y 时, n = x + y n=x+y n=x+y 就是问题的解。
下面我们讨论 x ≤ y x \le y x≤y 的情况。
n m o d x n \mod x nmodx | y m o d n y \mod n ymodn | |
---|---|---|
n < x n \lt x n<x | n n n | < n \lt n <n |
n > y n \gt y n>y | < x ≤ y \lt x \le y <x≤y | y y y |
y ≥ n ≥ x y \ge n \ge x y≥n≥x | n − ⌊ n x ⌋ x n-\lfloor \frac{n}{x} \rfloor x n−⌊xn⌋x | y − ⌊ y n ⌋ n y-\lfloor \frac{y}{n} \rfloor n y−⌊ny⌋n |
可以发现只有 y ≥ n ≥ x y \ge n \ge x y≥n≥x 时,题目给出的情况才会出现,抽象成一维情况,就是在 [ x , y ] [x,y] [x,y] 中找一点 n n n 使得 n m o d x = y m o d n n \mod x = y \mod n nmodx=ymodn。
抽象来讲,如果我们从 0 0 0 出发,每次走 x x x,走 t t t 次,再走一段较小的距离 δ ( 0 ≤ δ < x ≤ y ) \delta(0 \le \delta \lt x \le y) δ(0≤δ<x≤y),假设可以到达点 n n n, 那么 : n = t x + δ n = tx + \delta n=tx+δ ,且 n m o d x = δ n \mod x = \delta nmodx=δ 。
若 y m o d n = n m o d x y \mod n = n \mod x ymodn=nmodx,那么考虑对于 n n n 最接近 y y y 的情况( y m o d n = y − n y \mod n = y-n ymodn=y−n),可以得出 y − t x < 2 x y -tx \lt 2x y−tx<2x,因为若 y − t x ≥ 2 x y-tx \ge 2x y−tx≥2x,我们有 y − n = y − t x − δ ≥ 2 x − δ > x ≠ δ y-n=y-tx-\delta \ge 2x - \delta \gt x \neq \delta y−n=y−tx−δ≥2x−δ>x=δ。由于 x , y x,y x,y 都是偶数,考虑 y − t x < x y-tx<x y−tx<x的情况,则 n − t x = y − n ⇒ n = y + t x 2 = y + [ ( y − y m o d x ) / x ] ∗ x 2 = y − y m o d x 2 n-tx=y-n \Rightarrow n=\frac{y+tx}{2}=\frac{y+[(y - y \mod x) /x]*x}{2}=y - \frac{y \mod x}{2} n−tx=y−n⇒n=2y+tx=2y+[(y−ymodx)/x]∗x=y−2ymodx。至此可以直接求出 n n n 的解。另一种情况( x ≤ y − t x < 2 x x \le y-tx \lt 2x x≤y−tx<2x)其实无法保证能得到解,比如,若题目给出 y − x < x y-x<x y−x<x,则仍然需要最近情况去求解,既然最近情况已经可以给出一个确定解了,对本题就不需要继续讨论了。
Code
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;int main(){LL t, x, y;cin >> t;while(t--) {cin >> x >> y;if(x > y) cout << x + y << endl;else cout << y - (y % x) / 2 << endl;}return 0;
}
Codeforces-1604 D: Moderate Modular Mode相关推荐
- Moderate Modular Mode %,取模运算性质,数轴,思维
题意: 给两个偶数x和y,找到n满足n%x == y%n 思路: 分类找特殊情况.一般而言我们猜测n%x=y%n这个式子的值是0或者y之类比较特殊的,然后再猜测n的表达式 x==y,则n取x x> ...
- Moderate Modular Mode
YouKn0wWho has two even integers xx and yy. Help him to find an integer nn such that 1≤n≤2⋅10181≤n≤2 ...
- CF1603B Moderate Modular Mode
题目大意 给定两个偶数 x , y x,y x,y. 求一个 n ∈ [ 1 , 2 × 1 0 18 ] n \in [1,2\times10^{18}] n∈[1,2×1018] 满足 n m o ...
- Codeforces1603 B. Moderate Modular Mode(数学)
题意: 解法: n % x = y % n 优 先 考 虑 结 果 为 特 殊 值 , 如 0 和 y . n % x = y % n = 0 , 当 x = = y 时 , n 取 x 成 立 . ...
- Codeforces Round #752 (Div. 2)部分题解(A ~ D)
A. Era (模拟) 比赛链接:https://codeforces.com/problemset/problem/1604/A 题目大意 给出长度为 n n n的数组 a a a,每次我们可以任意 ...
- codeforces round #752
题目链接 A. Era typedef long long ll;void solve(){ll n;scanf("%lld",&n);ll ans = 0;ll x,y; ...
- CodeForces - 1359E Modular Stability(组合数学)
题目链接:点击查看 题目大意:给出一个 n 和 k ,要求构造一个长度为 k 的严格递增数组 a[ i ] ,且 1 <= a[ i ] <= n ,满足任意整数 x ,对下列的等式恒成立 ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
最新文章
- 使用datatable 将测试数据与业务分离
- golang 接口_「实战」助力数据库开发之接口篇 - Golang 连接 Greenplum
- Android中个人推崇的数据库使用方式
- spring配置详解-属性注入(构造函数)
- 目标检测——从RCNN到Faster RCNN 串烧
- 洛谷P1173:[NOI2016] 网格(tarjan、离散化)
- 管理软件实施(4)——如何编写售前解决方案
- 带撤销贪心——cf1148F好题
- 超越Tiny-YOLO V4,全新设计轻量化YOLO模型实现边缘实时检测!!!
- 解决wget下载过慢的问题
- 利用LU分解法的多项式拟合实验
- 如何用MAYA 制作人物动画 使人物动作更加真实流畅
- android版本4.4.2导航,天敏D8+_rk3288_Android_4.4.2_kiui7_蓝光导航极速版
- 流水线中数据相关的理解(RAW、WAR和WAW)
- java 前置系统报文通讯方式_银行核心与前置系统的区别
- 五. Tomcat 常见问题解决及面试题
- 关于PS新建(PS如何新建)
- 用这个工具可以批量分割视频
- DTU连接自建MQTT服务器
- 【java】对URL中的中文和符号进行UrlEncode转码
热门文章
- 已解决 0x0000XXXX (ucrtbase.dll) (XXX.exe 中)处有未经处理的异常: 请求了严重的程序退出。
- 机器学习之利用SMO算法求解支持向量机—基于python
- 5分钟商学院工具篇读书笔记摘要(一)思考工具-5W2H工作法
- vmware安装centos
- snort 检测nmap_Snort***检测系统安装与配置
- Uni-app 原生app 云打包(安卓篇)
- 手把手教你爬取PC端『某酷视频』个人历史播放数据,并可视化展示
- 单细胞测序之基本的数据处理基本流程
- npm run 时报错 failed to parse json
- 如何搭建商超积分商城系统框架