D. The Beatles

题意:

有n*k个城市,每个城市间的距离是1km,在第1,1+k,1+k*2……,1+(n-1)*k个城市中有饭馆,

从城市s出发,每次走过的距离为l,问再次回到s时停了多少站,数量为num,第一次在s不算。

已知在s时离s最近的饭店的距离是a,当走过l后距离最近的饭店的距离是b,已知走的顺序有两种,分为顺时针,逆时针。

求最小的num = x,最大的num = y。

思路:

一开始题目都没读懂 ̄□ ̄||,后来参考别人的代码,先考虑顺时针和逆时针两种情况,

顺时针:(1)s-1 = a,(2)s-1+l = b

逆时针:(1)s-1 = -a,(2) s-1+l = -b。

所以总共四种情况。

将1,2组合得到l的四种情况

a+b,a-b,b-a,-a-b。

l的间距一定是正数,而且肯定大于k,所以可以写成l = k*i+c的形式,

然后枚举i,i的范围是1~n,c肯定是[1,k)范围内,所以对k取余即可。

从s出发经过n*k/gcd(n*k,l),次回到s,所以枚举所有情况就能求出最终的最小次数和最大次数。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 100100;
typedef long long LL;
LL MIN(LL x,LL y){return x<y?x:y;
}
LL MAX(LL x,LL y){return x>y?x:y;
}
LL Gcd(LL x,LL y){return y==0?x:Gcd(y,x%y);
}
int main(void)
{LL n,k,a,b,i,j;scanf("%lld%lld%lld%lld",&n,&k,&a,&b);LL f[4];f[0] = a+b;f[1] = a-b;f[2] = -a+b;f[3] = -a-b;LL x = 1e18+5,y = -1;for(i=0;i<n;i++){for(j=0;j<4;j++){LL c = (f[j]+k)%k;LL tp = (i*k+c);x = MIN(x,n*k/Gcd(n*k,tp));y = MAX(y,n*k/Gcd(n*k,tp));}}printf("%lld %lld\n",x,y);return 0;
}

D. The Beatles(思维+枚举)相关推荐

  1. B. Dubious Cyrpto(思维+枚举)

    题目 大致翻译:帕夏喜欢把严格的正整数送给他的朋友.帕夏关心安全性,因此当他想发送一个整数n时,他用以下方式对它进行加密:他选取三个整数a.b和c,使l≤a.b.c≤r,然后计算加密值m=n⋅a+b− ...

  2. 枚举 ---- D. Zigzags[ Educational Codeforces Round 94 (Rated for Div. 2)]思维枚举优化4重循环

    D. Zigzags 题目大意:就是给你i<j<k<l并且aj=al&&ai=aki<j<k<l并且a_j=a_l \&\& a_i ...

  3. 【牛客 - 289K】这是一个沙雕题III(贪心,思维枚举,技巧trick,计算上下界)

    题干: 因为现在的新生太强了,都学会了"dp",所以就有了这样一个"dp"题,双11时Gugugu有(x,x+1,x+2....y-1,y)元的抵用券无数张,但 ...

  4. CF876 F 思维 枚举

    给你n个数,问有几个区间满足,区间内或操作大于区间内的任意数. 首先可以知道,两数或操作的结果必定不会小于两者间的最大值,也就是说对于一个区间中,不合法的状态只有两值或相等.那么我们可以考虑枚举每个数 ...

  5. The Beatles (思维 + 暴力)div1

    题目大意: n*k个城市围成一个环,编号1,1+k,1+2k--的城市中有餐馆,现在,从一个城市s出发,每走l步停一下,问最少和最多走几步能够回到起点,然后给出两个数a,b分别表示距离起点s附近的餐馆 ...

  6. AcWing 1826. 农田缩减(思维+枚举)

    题面链接 https://www.acwing.com/problem/content/description/1828/ 思路 因为只用去处一只奶牛,所以这只奶牛肯定尽可能远离大部分牛群,所以我们很 ...

  7. (L3-012)水果忍者(思维+枚举)

    题目链接:PTA | 程序设计类实验辅助教学平台 f 分析:这道题目我们先来看一下满足题意的直线具有什么样的特殊性质,假如直线l可以过这n条线段,假设l不经过任意一条线段的下端点,那么我们就可以将其向 ...

  8. 递增三元组蓝桥杯c语言,第九届蓝桥杯_递增三元组(枚举的优化思路)

    给定三个整数数组 A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN], 请你统计有多少个三元组(i, j, k) 满足: ...

  9. 2020-2021年度第二届全国大学生算法设计与编程挑战赛(春季赛)【部分题题解】

    2021年6月份打的比赛,现在才开始复盘. 目录 A: 智慧果[难度: 签到题 / 知识点: 递推] B: Xanadu[难度: 中 / 知识点: 最短路] C: 这是一道大难题[难度: 一般 / 知 ...

最新文章

  1. jenkins 添加 证书凭证Credentials
  2. 无生命的AI算不上「智能」
  3. 前端基础知识 - 收藏集 - 掘金
  4. 学习在 ArcEngine 中使用 Geoprocessing
  5. UA MATH523A 实分析1 集合论基础6 一些点集拓扑基本概念
  6. python 中float 的语法_python语法和基本数据类型
  7. 实验 3:备份和还原配置文件
  8. Ubuntu Server 16.04 LTS上给Docker配置镜像加速器
  9. golang错误处理机制(异常处理)
  10. SAP Cloud for Customer Account和individual customer的区别
  11. php中子类实现多接口,PHP子类无法实现相同的接口父类实现
  12. android开发:input类型
  13. mysql操作数据库的步骤,Golang操作MySql数据库的完整步骤记录
  14. Sublime Text 3 Plugin Better!
  15. Tecplot 360 EX 2020 R1中文版
  16. 实现黑客帝国中的代码雨 快进来学(附源代码)
  17. 线性查找python_C3-Linearization--线性化python
  18. 今天看continous delivery看到extreme programming
  19. 用ps魔棒工具选区域和改变区域颜色
  20. 如何为iTunes Connect准备应用

热门文章

  1. java的memset怎么写_memset函数使用详解
  2. eccel身份证截取指定格式日期插入10000条序号
  3. 计算机类中文核心期刊影响因子
  4. 用Matlab解二阶非齐次微分方程
  5. 过孔盖油和过孔开窗的区别 PCB制作(硬件每日一题)
  6. Windows VMware 装 macOS 全网最详细
  7. 「2022」字节-前端(互娱)笔试题
  8. 【读书笔记->数据分析】BDA教材《数据分析》书籍介绍
  9. 精准解决IDEA中文字体大小不一 奇奇怪怪
  10. Obiee+echarts实例之饼图(2)