D. The Beatles
链接
[https://codeforces.com/contest/1143/problem/D]
题意
就是有nkcity,n个面包店
第一个面包店在1city,第x个在(x-1)k+1city
已知刚开始起步离最近面包店的距离和跳第一次之后离面包店最近的距离
问你最多需要走调少次回到出发地和最少的跳次数
分析
我是看官方题解才知道这么回事收获不小
就是一定去用已知条件去确定某些情况
缩小需要枚举的范围,分析能力还是不够强啊
首先我们不知道每次要跳多远
但是你的出发点是可以确定,一旦出发点确定,那么跳多少也可确定但情况很多
暴力枚举是会tle的,我们假设跳的是l
那么跳回到出发地的次数是n⋅k/gcd(n⋅k,l)
那么设l=k*x+c; x,c未知,但一定是非负的。因为不可能反方向跳
但有a,b;
c是可以确定的((a+b)%k,(a−b)%k,(b−a)%k,(−a−b)%k),
只有四种情况,自己画图模拟不同出发地和不同第一次跳的地点就知道了
然后这个k的范围就是0到n-1因为最多有n个面包店
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,k,a,b;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
while(cin>>n>>k>>a>>b){
ll f[4];
f[1]=a+b,f[0]=a-b,f[2]=b-a,f[3]=-a-b;
ll x=1e18,y=-1;
for(int i=0;i<n;i++){
for(int j=0;j<4;j++){
ll c=(f[j]+k)%k;
ll l=k*i+c;
x=min(x,n*k/__gcd(n*k,l));
y=max(y,n*k/__gcd(n*k,l));
}
}
cout<<x<<' '<<y<<endl;
}
return 0;
}
D. The Beatles的更多相关文章
- [ 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 ...
- CF1143D/1142A The Beatles
CF1143D/1142A The Beatles 将题目中所给条件用同余方程表示,可得 \(s-1\equiv \pm a,s+l-1\equiv \pm b\mod k\). 于是可得 \(l\e ...
- Let It Be - The Beatles - Lyrics
轉載自 https://www.youtube.com/watch?v=0714IbwC3HA When I find myself in times of trouble, Mother Mary ...
- 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,则由题意 ...
- CF-1143D. The Beatles
题意:有间隔为k的n个点在数轴上,下标为 \(1,k+1, 2*k+1,\cdots (n-1)*k+1\) 首尾相接.设起点为s,步长为L,而现在只知道s距离最近的点的距离为a,和(s+L)距离最近 ...
- 『题解』Codeforces1142A The Beatles
更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description Recently a Golden Circle of Beetlovers ...
- Entity Framework 6 Recipes 2nd Edition(13-10)译 -> 显式创建代理
问题 你有一个POCO实体,原本在执行一个查询时动态创建代理,现在你不想EF延迟创建代理带来的代价. 解决方案 假设你有一个如图Figure13-15的模型 Figure 13-15. A model ...
随机推荐
- 结识hybrid体验这一年
在这之前虽然看过一些博客介绍 hybrid,但是始终没有具体应用场景,想象的就是我现在做好了一个网站,然后 native 直接在 webview 中打开我的网站,类似浏览器中打开网站一样,头部添加一个 ...
- CSS引用样式
llink和@import引入外部样式的区别 •隶属上的差别 link属于HTML标签,而@import完全是CSS提供的一种方式. •@import次数限制 @import只能引入31次css文件. ...
- [Linux] memache打印所有的key
1.在使用memcache的时候 , 经常需要查看下里面存储的值 , 前提是要先知道key是啥,memcache没有redis的keys命令 2.下面两个命令的结合,可以查看到key stats it ...
- 好用的开源库(一)——MaterialEditText
GIthub地址:https://github.com/rengwuxian/MaterialEditText#features 使用文档: 在android新推出的Material Design中对 ...
- 【转】mysql数据库优化大全
数据库优化 sql语句优化 索引优化 加缓存 读写分离 分区 分布式数据库(垂直切分) 水平切分 MyISAM和InnoDB的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每 ...
- java实现字符串数字部分自增
实现添加员工时对工号进行自增长 思路:后台获取数据库中最后一条员工数据的工号,对其进行自增再传入前端 mybatis映射文件:获取最后一条数据 <select id="getLastN ...
- LeetCode 176. 第二高的薪水(MySQL版)
0.前言 最近刷LeetCode 刷数据库题目 由于数据库课上的是SQL,而MySQL有许多自己的函数的,怕把刚学会的函数忘记 特在此记录! 1.题目 编写一个 SQL 查询,获取 Employee ...
- 廖雪峰老师博客学习《通过生成器generator生成列表式杨辉三角》
说明:这是我接触生成器概念后,自己对它的理解,可能比较表面,没深入理解,也可能有错误.后续校正错误认知,将有关generator作为一个tag了! 希望以后能活用. 先贴出自己写的triangles( ...
- webpack入门教程--1
首先说什么是webpack:Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 然后因为webpack有不同的版本,所以 ...
- HTML和CSS在IE7中常见的兼容性问题
IE7及以下版本都会有这些问题 1.IE7块转内联块问题 问题描述:好像块转内联块失败,依然不在一行排列 解决办法:给元素添加如下css *display:inline;*zoom:1; *di ...