Codeforces Round #549(div2) D.The Beatles(数学)
题意
给一个圆,圆上共有nknknk个点,分别编号为000~nk−1nk-1nk−1,任意两个相邻的点距离1km1km1km,其中在编号为kt+1kt+1kt+1的点上有快餐店.
现在有一个人一开始在编号为sss的点,他每轮跑lll kmkmkm,再次回到sss时停止跑.
由于某种神奇的因素,他忘记了sss和lll的值,但他知道一开始sss处距离最近的饭店的距离为aaa kmkmkm,跑了lll kmkmkm后距离最近的饭店为bbb kmkmkm,先让你求最小的跑步轮次xxx和最大的跑步轮次yyy.
做法
可以列出下列方程组:
s=1±a(modk)s = 1 \pm a \pmod k s=1±a(modk)
s+l=1±b(modk)s + l = 1 \pm b \pmod k s+l=1±b(modk)
tl=0(modnk)t l = 0 \pmod {nk}tl=0(modnk)
其中ttt为满足方程的最小正整数解.
显然有t=nk(l,nk)t = \frac{nk}{(l,nk)}t=(l,nk)nk,而l≡±a±b(modk)l \equiv \pm a \pm b \pmod kl≡±a±b(modk),只有4n4n4n种取值.枚举求gcdgcdgcd即可.
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define pb push_back
const int N = 1e3 + 7;
const ll mod = 1e9 + 7;int main() {#ifdef localfreopen("in.txt", "r", stdin);
#endifios::sync_with_stdio(false);cin.tie(0), cout.tie(0);ll n, k, a, b;cin >> n >> k >> a >> b;ll temp = n * k, t[4] = {a + b, a - b, b - a, -a - b};ll mx = LLONG_MIN, mi = LLONG_MAX;for(int i = 0; i < 4; i++) {ll tt = t[i];for(int j = 0; j < n; j++, tt += k) {mx = max(mx, abs(__gcd(tt, temp)));mi = min(mi, abs(__gcd(tt, temp)));}}cout << temp / mx << ' ' << temp / mi << endl;return 0;
}
Codeforces Round #549(div2) D.The Beatles(数学)相关推荐
- Codeforces Round #549 (Div. 2) D. The Beatles
D. The Beatles time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Codeforces Round #549 (Div. 2) 1143D. The Beatles
D. The Beatles time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- codeforces Round#429 (Div2)
2017-08-20 10:00:37 writer:pprp 用头文件#include <bits/stdc++.h>很方便 A. Generous Kefa codeforces 84 ...
- Codeforces Round#310 div2
C题:这题说的是套娃,如果做题的时候知道是套娃,那就好理解多了 规则1:套娃A可以放到套娃B里面,当且仅当套娃B没有放在其他套娃里面 规则2:套娃A放在套娃B里面,且套娃B没有放在其他套娃里面,那么可 ...
- Codeforces Round #359 div2
Problem_A(CodeForces 686A): 题意: \[ 有n个输入, +\space d_i代表冰淇淋数目增加d_i个, -\space d_i表示某个孩纸需要d_i个, 如果你现在手里 ...
- Codeforces Round #652 div2 总结 端午节前小结
2020.6.24 连着三天熬夜和一连串要处理的事情已然让我的身体有点吃不消.我只是喜欢想题的那种冥想思路开阔的感觉,但是熬夜还是不能行的.端午节前就暂时不碰竞赛了,昨天晚上算是打完了最后一场比赛.今 ...
- Codeforces Round 361 div2
雪崩,全错掉了GG.前两道题相对之前的难度大一点啊,不过A题有个循环应该是从0开始而不是1开始这样的低级错误不应该犯.B题差不多是一个BFS,但是我当时始终绕着最短路径写来写去,一直各种TLE与WA. ...
- Codeforces Round #360(div2)
考完试的晚上,打了场codeforces,主要感觉由于睡眠不够,最后差了点劲啊,C题基本上都过了,但忙中出错最后把数组调小易于debug后再提交又忘记改回来了,看到Runtime Error自己竟没反 ...
- codeforces round 416 div2补题
第一题,水题 A. Vladik and Courtes #include<bits/stdc++.h> using namespace std; int main() {long lon ...
最新文章
- linux驱动:i2c驱动(二)
- .git文件夹_Git服务器安装- windows
- 指数基金日涨跌幅python_看懂巴菲特推荐的指数基金定投,Python验证
- CopyOnWriteArrayList源码解析
- 列表和range、元组
- Spring MVC:带有CNVR卷的REST应用程序。 1个
- Oracle Sql 胡乱记
- C语言多维数组与多级指针
- 训练日志 2018.12.16
- createSQLQuery与createQuery的区别
- windows安装npm教程
- 取出字符串中的数字部分
- PHP 动态获取数组索引的值
- Mismatch between array dtype (‘<U40‘) and format specifier (‘%.18e‘)
- 基于Java毕业设计幼儿园教育管理信息系统演示2021源码+系统+mysql+lw文档+部署软件
- win10 svn无法成功完成操作,因为文件包含病毒或潜在的垃圾软件
- Windows10磁盘分区和扩展
- 小写金额转换成大写金额
- C# Panel半透明
- 运筹说 第92期|爱思唯尔“高被引学者“
热门文章
- win10 汇编工具 em8086安装
- WINE 安装使用钉钉 Dingtalk
- 中小企业网上手机订货下单软件|移讯云订货通订单管理系统后台功能模块
- html中的em等于多少像素,CSS中的em运用详解,1em等于多少像素?
- 等级保护测评常见的疑难杂症,这篇文章一招制胜
- 实践与共享:一键永久激活 Windows Server 2008 和 Windows Server 2008 R2 的MAK密钥
- 让0球平局怎么算_格斗游戏连续平局的下场,直接挑战最终BOSS游戏厅老板
- c语言中的下标变量是什么,c语言中数组的下标从什么开始?
- QT打包时系统提示 Cannot find Visual Studio redist directory
- 来了!STM32移植LuatOS,潘多拉示例全新教程