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的更多相关文章

  1. CF-1143D. The Beatles

    题意:有间隔为k的n个点在数轴上,下标为 \(1,k+1, 2*k+1,\cdots (n-1)*k+1\) 首尾相接.设起点为s,步长为L,而现在只知道s距离最近的点的距离为a,和(s+L)距离最近 ...

  2. [ 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 ...

  3. Let It Be - The Beatles - Lyrics

    轉載自 https://www.youtube.com/watch?v=0714IbwC3HA When I find myself in times of trouble, Mother Mary ...

  4. D. The Beatles

    链接 [https://codeforces.com/contest/1143/problem/D] 题意 就是有nkcity,n个面包店 第一个面包店在1city,第x个在(x-1)k+1city ...

  5. CodeForces #549 Div.2 D. The Beatles

    题目 解题思路 关键是要 ,找出L 的组合,然后遍历L的组合,用最大公约数就可以算出来当前L的值要停多少次 怎么找出L的组合呢?饭店是每隔K 有一个,是重复的,我们只需要算出第一个饭店两侧,起点和停顿 ...

  6. A-the Beatles

    传送门: 题意:题目给出n,k分别代表在这个环中饭店的个数和两个饭店相离的距离.然后再给出一组a,b分别代表在某一点s里最近饭店的距离和在这个s点走一步之后到达的点离最近饭店的距离. 然后问这个人再次 ...

  7. CF1142A The Beatles

    思路: 令p表示步数,l表示步长.由于p是使(l * p) % (n * k) == 0的最小的p,所以p = (n * k) / gcd(n * k, l). 设l = k * x + r,则由题意 ...

  8. Codeforces 1142A(性质、暴举)

    队友和大佬都什么几种情况啥的……我是把终点都插了,起点随便选一个,暴举答案莽A. ; ll n, k, a, b, aa, minn = INF, maxx = -; set<ll> bb ...

  9. 『题解』Codeforces1142A The Beatles

    更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently a Golden Circle of Beetlovers ...

随机推荐

  1. 内存记号(Memory Trail)[自定义的名字] --调试方法

    即使你把输出导向到文件中,运转记录花费的时间所带来的冲击,仍然足够改变程序的执行结果.如果要改善这种情况,我必须回到一个我所谓的“Memory Trails”(内存记号)的低阶技术中.为了使用 mem ...

  2. TED #07# How to inspire every child to be a lifelong reader

    Alvin Irby: How to inspire every child to be a lifelong reader Prepare elementarykitchen tableforced ...

  3. java第四天

    p32~p36: 学习javadoc 1.第一步,打开一个一定规模的java项目 2.第二步,搭建测试环境 IntelliJ IDEA ——> Tools ——> Generate Jav ...

  4. linux内核分析第三周-跟踪分析Linux内核的启动过程

    一.实验流程 1.打开环境 执行命令:cd LinuxKernel/ 执行命令:qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd root ...

  5. java实验五20145204

    java实验 Tcp传输 实验内容 运行代码一人服务器,一人客户端. 下载加解密代码,先编译运行代码,一人加密一人解密,适当修改代码. 集成代码,一人加密后通过TCP发送,加密使用AES或DES,AE ...

  6. 20145326 《Java程序设计》第9周学习总结

    20145326 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 一.JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数 ...

  7. 【Rpc】基于开源Dubbo分布式RPC服务框架的部署整合

    一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...

  8. Mongodb 命令及 PyMongo 库的使用

    1. PyMongo import pymongo 1. 初始化 Mongo 客户端 client=pymongo.MongoClient(mongodb://10.85.39.45:8188,10. ...

  9. Gym 101246G Revolutionary Roads

    http://codeforces.com/gym/101246/problem/G 题意: 给出一个有向图,现在可以把图中的任意一条边改为无向边,问强连通分量最多可以有多少个点,在此情况下输出所有能 ...

  10. POJ 3613 Cow Relays(floyd+快速幂)

    http://poj.org/problem?id=3613 题意: 求经过k条路径的最短路径. 思路: 如果看过<矩阵乘法在信息学的应用>这篇论文就会知道 现在我们在邻接矩阵中保存距离, ...