CF1487 Cat Cycle
一个规律题目要多做多积累 , 脑子不太灵活
题目大意:
两只猫A,B, A猫从n -> n-1 -> n-2 ... -> 1 -> 2 ... -> n ; B猫从1 -> 2 -> ... -> n -> n-1 -> ... -> 1
当两猫要相遇时,B猫往所移动得方向+1,而A猫占在相遇的位置上 (题目里面说A猫比B猫大,所以要让座...) .
输入: n为位置长度,k为第k小时 .
输出: 第k时,b猫所在得位置(数字).
思路:
整体而言,就是要知道B猫在k小时内一共移动了多少次,再将移动次数与n直接取模就是答案。
1.显然当n为偶数的时候,两者不可能相遇,将 移动次数 与n直接取模即可 (题目中k为第k小时,所以整体移动次数是k-1次)
2.当n为奇数的时候,在一个n的周期内,没相遇之前两者每移动一次都增加1,由于n为奇数,所以在移动n/2次时,就绝对会相遇一次,这时B猫就多走了一次。
也就是说,在一共移动k-1次中,每n/2次时B猫要多走一部,所以总的移动次数就是原来的再加上增加的,最后于n取模就是答案
代码如下:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<string>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#define ri register int
#define ll int
#define lll long long
using namespace std;
ll n,k;
ll t;
int main()
{
ios::sync_with_stdio(0);
cout.tie(0),cin.tie(0);
cin>>t;
while(t--)
{
cin>>n>>k;
if(n&1)
{
ll mr=n>>1; //每n/2增加一次
mr=(k-1)/mr; //所以移动k-1次要增加(k-1)/(n/2) 次
k+=mr; //此时k为B猫一共移动次数
ll ans=(k-1)%n; //取模完事
cout<<++ans<<"\n";
}
else
{
ll ans=(k-1)%n; // k-1 为移动次数
cout<<++ans<<"\n";
}
}
return 0;
}
写的溜的一批,自己就想不到
CF1487 Cat Cycle的更多相关文章
- 【Ansible】ansible循环
Ansible 循环 一.简单介绍 在ansible2.5之前,大多数人使”with_XXX”类型的关键字来操作循环,但是从2.6版本开始,官方推荐是”loop”关键字代替” with_XXX”. 1 ...
- Ansible自动化运维应用实战
实验环境 centos7.4 主机名称 IP 配置 用途 controlnode 172.16.1.120 1核/1G/60G ansible slavenode1 172.16.1.121 1核/1 ...
- 单细胞数据高级分析之消除细胞周期因素 | Removal of cell cycle effect
The normalization method described above aims to reduce the effect of technical factors in scRNA-seq ...
- shell more less cat
cat 连续显示.查看文件内容 more 分页查看文件内容 less 分页可控制查看文件内容 通俗点说: cat一次性把文件内容全部显示出来,管你看不看得清,显示完了cat命令就返回了,不能进行交互式 ...
- 使用JSONObject.fromObject的时候出现“There is a cycle in the hierarchy”异常 的解决办法
在使用JSONObject.fromObject的时候,出现“There is a cycle in the hierarchy”异常. 意思是出现了死循环,也就是Model之间有循环包含关系: ...
- JS案例之2——cycle元素轮播
元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...
- 基于Cat的分布式调用追踪
Cat是美团点评出的一款APM工具,同类的产品也有不少,知名的开源产品如zipkin和pinpoint:国内收费的产品如oneapm.考虑到Cat在互联网公司的应用比较广,因此被纳入选型队列,我也有幸 ...
- mkdir,rmdir,cp,rm,mv,cat,touch用法
一.mkdir新建目录 1.进入tmp目录,查看该目录下面的子目录 [root@localhost ~]# cd /tmp[root@localhost tmp]# lshsperfdata_root ...
- 大众点评cat系统的搭建笔记
项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提 ...
随机推荐
- C# yield return 原理探究
天需要些一个小工具,需要使用到多线程读写程序集,接口方法返回值类型需要为"IEnumerable<string>"这里用到了"yield return&quo ...
- Jmeter(四十) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 中篇(详解教程)
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...
- 解决send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
1:检查sendmail服务的状态 service sendmail status 2:开启sendmail服务 service sendmail start3:关闭sendmail服务 servic ...
- Python函数参数和注解是什么
四种参数 Python函数func定义如下: def func(first, *args, second="Hello World", **kwargs): print(first ...
- 如何保证Redis的高并发和高可用?
就是如果你用redis缓存技术的话,肯定要考虑如何用redis来加多台机器,保证redis是高并发的,还有就是如何让Redis保证自己不是挂掉以后就直接死掉了,redis高可用 redis高并发:主从 ...
- 由一名保安引发的Java设计模式:外观模式
目录 应用场景 外观模式 定义 意图 主要解决问题 何时使用 优缺点 结构 保安的故事 应用场景 使用方要完成一个功能,需要调用提供方的多个接口.方法,调用过程复杂时,我们可以再提供一个高层接口(新的 ...
- 2021年IT行业八大趋势预测
在新冠疫情的影响下,过去一年的IT行业产生着或多或少的变化.而今,2020年已走过一个季度,本文根据国内外一些调研机构的数据,整合了以下八条更适合国内的2021年IT行业趋势分析,希望能为相关决策者提 ...
- JavaScript设计模式(一):单例模式
单例模式的定义与特点 单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式.例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗 ...
- PAT归纳总结——关于模拟类问题的一些总结
关于时间的模拟问题 在刷题的过程中碰到了一些关于时间先后顺序的模拟题目,刚开始做的时候确实挺麻烦的,今天把这类问题的解题思路来整理一下. 比较典型的有: 1017 Queueing at Bank 1 ...
- hdu1428 spfa+记忆化搜索
题意: 题意坑爹,很容易误认成是做短路的条数,题意是给你一个图,让你从起点走到终点,问你有多少种走法,但有一个限制,假如你想从a走到b,必须满足终点到b的最短距离小于终点到a的最短距离. 思 ...