CF1143D/1142A The Beatles
CF1143D/1142A The Beatles
- 将题目中所给条件用同余方程表示,可得 \(s-1\equiv \pm a,s+l-1\equiv \pm b\mod k\).
- 于是可得 \(l\equiv \pm a\pm b \mod k\),将四个 \(l\) 取模后记为 \(l_1,l_2,l_3,l_4\).
- 对于每个 \(l\) ,它一定是 \(l_i+q\cdot k,q\in \mathbb{N_+}\) 的形式,它对应的答案为 \(\frac {n\cdot k} {gcd(l_i+q\cdot k,nk)}\).
- 注意到 \(gcd(l_i+q\cdot k,nk)=gcd(nk,l_i\%k+qk\%nk)=gcd(nk,l_i+(q\%n)k)\).所以在 \(0\sim n-1\) 内枚举 \(q\) 即可.时间复杂度为 \(O(n)\).
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read()
{
ll out=0,fh=1;
char jp=getchar();
while ((jp>'9'||jp<'0')&&jp!='-')
jp=getchar();
if (jp=='-')
fh=-1,jp=getchar();
while (jp>='0'&&jp<='9')
out=out*10+jp-'0',jp=getchar();
return out*fh;
}
ll n,k,a,b;
ll gcd(ll A,ll B)
{
return B?gcd(B,A%B):A;
}
ll p[4];
int main()
{
n=read(),k=read(),a=read(),b=read();
p[0]=(k+a+b)%k;
p[1]=(k+a-b)%k;
p[2]=(k-a-b)%k;
p[3]=(k-a+b)%k;
ll maxans=0,minans=1e18;
for(int i=0; i<4; ++i)
{
for(ll q=0; q<=n-1; ++q)
{
ll ans=n*k/gcd(p[i]+q*k,n*k);
maxans=max(maxans,ans);
minans=min(minans,ans);
}
}
cout<<minans<<' '<<maxans<<endl;
return 0;
}
CF1143D/1142A The Beatles的更多相关文章
- CF-1143D. The Beatles
题意:有间隔为k的n个点在数轴上,下标为 \(1,k+1, 2*k+1,\cdots (n-1)*k+1\) 首尾相接.设起点为s,步长为L,而现在只知道s距离最近的点的距离为a,和(s+L)距离最近 ...
- [ Codeforces Round #549 (Div. 2)][D. The Beatles][exgcd]
https://codeforces.com/contest/1143/problem/D D. The Beatles time limit per test 1 second memory lim ...
- Let It Be - The Beatles - Lyrics
轉載自 https://www.youtube.com/watch?v=0714IbwC3HA When I find myself in times of trouble, Mother Mary ...
- D. The Beatles
链接 [https://codeforces.com/contest/1143/problem/D] 题意 就是有nkcity,n个面包店 第一个面包店在1city,第x个在(x-1)k+1city ...
- CodeForces #549 Div.2 D. The Beatles
题目 解题思路 关键是要 ,找出L 的组合,然后遍历L的组合,用最大公约数就可以算出来当前L的值要停多少次 怎么找出L的组合呢?饭店是每隔K 有一个,是重复的,我们只需要算出第一个饭店两侧,起点和停顿 ...
- A-the Beatles
传送门: 题意:题目给出n,k分别代表在这个环中饭店的个数和两个饭店相离的距离.然后再给出一组a,b分别代表在某一点s里最近饭店的距离和在这个s点走一步之后到达的点离最近饭店的距离. 然后问这个人再次 ...
- CF1142A The Beatles
思路: 令p表示步数,l表示步长.由于p是使(l * p) % (n * k) == 0的最小的p,所以p = (n * k) / gcd(n * k, l). 设l = k * x + r,则由题意 ...
- Codeforces 1142A(性质、暴举)
队友和大佬都什么几种情况啥的……我是把终点都插了,起点随便选一个,暴举答案莽A. ; ll n, k, a, b, aa, minn = INF, maxx = -; set<ll> bb ...
- 『题解』Codeforces1142A The Beatles
更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently a Golden Circle of Beetlovers ...
随机推荐
- 接口测试之接口api文档的重要性
接口文档的特点 接口文档,顾名思义就是对接口说明的文档.好的接口文档包含了对接口URL,参数以及输出内容的说明,我们参照接口文档就能编写出一个个的测试用例.而且接口文档详细的话,测试用例编写简单,不会 ...
- SQL语句中case函数
case函数,严格的意义上来讲case函数已经试流程控制语句了,不是简单意义上的函数,不过为了方便,很多人将case函数称为流程控制函数. case函数的一般有两种用法:1.case expressi ...
- (15)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第三部分(完)
引言 程序截图: 在第二部分教程中,Ray教大家如何在地图中制作可碰撞的区域,如何使用tile属性,如何制作可以拾取的物品以及如何动态修改地图.如何使用“Heads up display”来显示分数. ...
- Codeforces Round #528 Solution
A. Right-Left Cipher Solved. 注意长度的奇偶 #include <bits/stdc++.h> using namespace std; string s; i ...
- 结合grabcut和inpaint,实现人像去除
在OpenCV提供更多函数中,grabcut能够实现抠图,inpaint能够实现修补.那么把两者结合起来,就能够实现简单的“人像去除”功能,也就是框选一个人后,使用周围的景象对人像进行修补.虽然效果比 ...
- 20145307陈俊达《网络对抗》Exp2 后门原理与实践
20145307陈俊达<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 非正规网站下载的软件 脚本 或者游戏中附加的第三方插件 例举你知 ...
- 20145314郑凯杰《网络对抗技术》实验1 逆向及Bof基础实践
20145314郑凯杰<网络对抗技术>实验1 逆向及Bof基础实践 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数 ...
- Cube Solution
- OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
本文基于OpenDaylight二层转发机制实验 而成 在SDN网络中,处于末端的主机并不知道其连接的网络是SDN,某台主机要发送数据包到另一台主机,仍然需要进行IP到MAC地址的ARP解析.SDN网 ...
- Qt532_WebKit_SSL问题
1.打开网页"http://www.baidu.com",它会跳转至"https://www.baidu.com/",使用 SSL了,于是 WebView 出现 ...