传送门:

题意:题目给出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. python2 安装 MySQL-python

    yum -y install mysql-devel libxml2 libxml2-dev libxslt* zlib gcc openssl yum install gcc libffi-deve ...

  2. mysql安装运行(centos)

    http://repo.mysql.com寻找需要的版本 wget -P /opt/downloads http://repo.mysql.com/mysql57-community-release- ...

  3. 同源策略jsonp和cors

    同源策略: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上 ...

  4. log4net可视化查询

    转自:https://www.cnblogs.com/huangxincheng/p/9120028.html 小步快跑的公司可以最简化操作直接通过log4net将日志写入ElasticSearch ...

  5. 20172328 暑假作业 之 实现安卓小程序Enjoy-all

    20172328 暑假作业 之 实现安卓小程序Enjoy-all 项目介绍 项目名称: Enjoy - all 项目简介: 本项目基于Java语言和Anroid Studio软件,实现了简单的冒泡.屏 ...

  6. rabbitmq-cluster搭建

    一.前期准备: 准备3台linux系统,配置好公司源,或者官网下载相应的网络源 1.条件:准备3台linux系统,确保能连到download.yunwei.edu 2.编写yum源下载脚本: #vim ...

  7. Android系统源代码目录结构 “Android源代码”“目录结构”

    在讲述Android源码编译的三个步骤之前,将先介绍Android源码目录结构,以便读者理清Android编译系统核心代码在Android源代码的位置. Android源代码顶层目录结构如下所示: ├ ...

  8. jquery复制图片

    <div class="img-div">           <a href="javascript:void(0);"><im ...

  9. amazeui表单form异步提交方法

    // 留言提交 $(function() { var $form = $('#ue-form'); $form.validator({ validateOnSubmit: true, submit: ...

  10. 廖雪峰Python3笔记

    主要复习过一遍 简介 略 安装 略 *** 第一个Python程序 第一行的注释: # _*_ coding: utf-8 _*_ #!/usr/bin/env python3 print() 可以接 ...