传送门:

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

然后问这个人再次走回到s点的最大步数跟最小步数。。。。由题意可知  城市点数有 n*k个,那么我们如何去确定当前的s点的可能值呢?

枚举可得!!!为什么?  饭店的位置在1,1+k,1+2k.......

s的下一个点最近的饭店有两种情况,1:跟离s点最近的饭店是一样的 那么我们就可以求出  l=1+mk+b- s的位置

2:两个的饭店是不一样的,那么就有下一个饭店的值减去b得到  s的下一个点,那么用这个点的坐标减去s的坐标就能得到 l 。s的坐标为 1+mk+a

那么知道步长了就是枚举找答案就对了。

由初等数论可知  从某个点出发,知道步长跟环的大小,那么跑回原来点的位置的次数为 n*m/gcd(n*m,步长)

这道div1“签到题”就可解了  (本蒟蒻发现最近打比赛怎么打都不满意,决定一心磕爆div1来增强自己,奈何这A题搞了三个小时。。。。希望自己能坚持每天都刷div1)

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define re register
const int N=1e6+;
void read(int &a)
{
a=;
int d=;
char ch;
while(ch=getchar(),ch>''||ch<'')
if(ch=='-')
d=-;
a=ch-'';
while(ch=getchar(),ch>=''&&ch<='')
a=a*+ch-'';
a*=d;
}
ll gcd(ll a,ll b)
{
return !b?a:gcd(b,a%b);
}
int main()
{
int n,m,a,b;
read(n);
read(m);
read(a);
read(b);
a++;///第一个点的坐标不是0,所以a++
ll t=1ll*n*m;
ll ans1=-,ans2=1ll*n*m+;
for(re int i=;i<n;i++)
{
ll t1=1ll*i*m++b;///算出可能的s+l值
ll t2=1ll*(i+)*m+-b;
t1-=a;///b所在的位置-a得到步长
t2-=a;
ans1=max(ans1,t/gcd(abs(t1),t));
ans2=min(ans2,t/gcd(abs(t1),t));
ans1=max(ans1,t/gcd(abs(t2),t));
ans2=min(ans2,t/gcd(abs(t2),t));
}
cout<<ans2<<" "<<ans1<<endl;
return ;
}

A-the Beatles的更多相关文章

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

  2. CF1143D/1142A The Beatles

    CF1143D/1142A The Beatles 将题目中所给条件用同余方程表示,可得 \(s-1\equiv \pm a,s+l-1\equiv \pm b\mod k\). 于是可得 \(l\e ...

  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. CF1142A The Beatles

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

  7. CF-1143D. The Beatles

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

  8. 『题解』Codeforces1142A The Beatles

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

  9. Entity Framework 6 Recipes 2nd Edition(13-10)译 -> 显式创建代理

    问题 你有一个POCO实体,原本在执行一个查询时动态创建代理,现在你不想EF延迟创建代理带来的代价. 解决方案 假设你有一个如图Figure13-15的模型 Figure 13-15. A model ...

随机推荐

  1. 微信开发getLocation、openLocation等一些功能不起作用,但是走ready方法 closeWindow一些方法可以用

    1.检查wx.config,发现我在jsApiList也声明了这些方法,并且也走了ready回调 wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客 ...

  2. Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  3. 【SQL】 MySql与SqlServer差异比较(MySql踩坑全集)

    本文主要记录将数据库从SqlServer移植到MySql的过程中,发现的各种坑爹问题.以SqlServer为主,记录MySql的差异性. 一.IF语句 首先MySql中的的IF语法不同. IF Con ...

  4. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...

  5. 一起学HBase——简单介绍HBase各种组件

    HBase是谷歌BigTble的开源实现.谷歌的三篇论文拉开了大数据江湖的序幕,铸就了现在以Hadoop为主的大数据技术生态圈.而HBase是开源的大数据数据库,和传统的行式数据库不同的是,HBase ...

  6. SQL反模式学习笔记14 关于Null值的使用

    目标:辨别并使用Null值 反模式:将Null值作为普通的值,反之亦然 1.在表达式中使用Null: Null值与空字符串是不一样的,Null值参与任何的加.减.乘.除等其他运算,结果都是Null: ...

  7. UOJ#395. 【NOI2018】你的名字 字符串,SAM,线段树合并

    原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ395.html 题解 记得同步赛的时候这题我爆0了,最暴力的暴力都没调出来. 首先我们看看 68 分怎么做 ...

  8. Python 实现 动态规划 /斐波那契数列

    1.斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数 ...

  9. python基础篇_006_面向对象

    面向对象 1.初识类: # 定义一个函数,我们使用关键字 def """ def 函数名(参数): '''函数说明''' 函数体 return 返回值 "&qu ...

  10. Round#534 div.2-B Game with string

    唔,第一次参加,掉了好多分. http://codeforces.com/contest/1104/problem/B 不用考虑太多,string真的好厉害. #include<stdio.h& ...