一个规律题目要多做多积累 , 脑子不太灵活

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-B Cat Cycle的更多相关文章

  1. CF1487 Cat Cycle

    一个规律题目要多做多积累 , 脑子不太灵活 CF1487 Cat Cycle 题目大意: 两只猫A,B, A猫从n -> n-1 -> n-2 ... -> 1 -> 2 .. ...

  2. 【Ansible】ansible循环

    Ansible 循环 一.简单介绍 在ansible2.5之前,大多数人使”with_XXX”类型的关键字来操作循环,但是从2.6版本开始,官方推荐是”loop”关键字代替” with_XXX”. 1 ...

  3. Ansible自动化运维应用实战

    实验环境 centos7.4 主机名称 IP 配置 用途 controlnode 172.16.1.120 1核/1G/60G ansible slavenode1 172.16.1.121 1核/1 ...

  4. 单细胞数据高级分析之消除细胞周期因素 | Removal of cell cycle effect

    The normalization method described above aims to reduce the effect of technical factors in scRNA-seq ...

  5. shell more less cat

    cat 连续显示.查看文件内容 more 分页查看文件内容 less 分页可控制查看文件内容 通俗点说: cat一次性把文件内容全部显示出来,管你看不看得清,显示完了cat命令就返回了,不能进行交互式 ...

  6. 使用JSONObject.fromObject的时候出现“There is a cycle in the hierarchy”异常 的解决办法

    在使用JSONObject.fromObject的时候,出现“There is a cycle in the hierarchy”异常.   意思是出现了死循环,也就是Model之间有循环包含关系: ...

  7. JS案例之2——cycle元素轮播

    元素轮播效果是页面中经常会使用的一种效果.这个例子实现了通过元素的隐藏和显示来表现轮播效果.效果比较简单. 效果图如下: 源代码如下: <!DOCTYPE html> <html&g ...

  8. 基于Cat的分布式调用追踪

    Cat是美团点评出的一款APM工具,同类的产品也有不少,知名的开源产品如zipkin和pinpoint:国内收费的产品如oneapm.考虑到Cat在互联网公司的应用比较广,因此被纳入选型队列,我也有幸 ...

  9. mkdir,rmdir,cp,rm,mv,cat,touch用法

    一.mkdir新建目录 1.进入tmp目录,查看该目录下面的子目录 [root@localhost ~]# cd /tmp[root@localhost tmp]# lshsperfdata_root ...

  10. 大众点评cat系统的搭建笔记

    项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提 ...

随机推荐

  1. Java异常 小白版

    什么是异常 在程序运行时打断正常程序流程的任何不正常的情况称为错误或异常.异常包括用户造成的异常和 系统造成的异常. 例如:网络连接中断.操作符越界.加载的类找不到 异常产生的原因和分类 1. 异常产 ...

  2. 圣诞节快乐,教你用shell脚本实现一颗圣诞树。【小酷炫】

    前言 圣诞节到了! 一口君在这祝各位粉丝朋友圣诞节快乐! 祝各位考研的同学金榜题名! 祝找工作的朋友offer接到爆! 祝各位老板新年大发财源! 在此一口君特地用shell脚本画了一个圣诞树! 先来看 ...

  3. C#/.NET/.NET Core技术前沿周刊 | 第 1 期(2024年8.12-8.18)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用的技术文章.社区动态.优质项目和学习资源等.让你时刻站 ...

  4. Visual studio 2019 无法推送代码到 GitHub

    博客转载:VS2022 无法推送到GitHub,也无法克隆项目_vs连不上github-CSDN博客 问题描述` 使用vs2019 git无法推送到github 解决办法` 按照大神的描述设置,非常好 ...

  5. Node.js 使用

    创建 Node 项目 npm init -y # 初始化 Node 项目 package.json 文件 这个文件记录了项目的相关信息. { "name": "hello ...

  6. 掌握 C++17:结构化绑定与拷贝消除的妙用

    C++17 特性示例 1. 结构化绑定(Structured Binding) 结构化绑定允许你用一个对象的元素或成员同时实例化多个实体. 结构化绑定允许你在声明变量的同时解构一个复合类型的数据结构( ...

  7. 实战合集 | I/O 2021 Flutter 研讨会

    2021 年的 Google I/O 大会已圆满闭幕,本次大会带来了诸多关于各项谷歌开发技术产品的最新更新.在此次 I/O,Flutter 发布了 2.2 版本,包括 Web 版的增强.更多 Mate ...

  8. BOOST库 将源码作交叉编译 书籍下载

    好记性不如烂笔头,BOOST库的移植,我也记录一下. 1. BOOST库 版本1.66.0 下载地址, 附书籍C++ BOOST库开发指南: https://download.csdn.net/dow ...

  9. [TK] 一心净士 hzoj-tg-937-2

    万元申万的(不是) 嗯... 另外,这道题其实叫一心净士(shi) 而不是一心净土. 剖析 我们注意到题目要让我们使最小的自然数最大,那么我们的每一个区间都要从零开始放. 显然,假如我们所有区间里最小 ...

  10. [OI] Kruskal 重构树

    算法介绍 Kruskal 重构树用于快速判断节点的连通性. 考虑到,假如两个节点是联通的,则他们之间总会有一条边被选入最小生成树内,因此他们在最小生成树内也是联通的. 也就是说,我们可以通过求最小生成 ...