CF976B
这是一道考验思维找规律的题,很有可做性。
正文
题意
一个 n * m 的矩阵,从左上角(1 , 1) 开始,先向下走直到最下方,再向右走到最右,再向上走一个,再走到最左......一直走到(1 , 2)为止
然后问你走完第k步后当前的坐标
分析
正常走然后算是不行的,时间太长,而且还很难写。
既然行走规则是固定的,那我们就试着找一下规律。
我们把行走分成两部分:
第一部分:从(1 , 1)开始一直走到(n ,1)的过程(也就是从左上角走到左下角的过程)。
这个过程我们可以知道,走完第k步的坐标是(k+1 , 1);
第二部分,从(n ,2)开始走回到(1 , 2)的过程。
这个过程我们首先可以看出,当走到第 n - i 行时,若 i 是偶数,则是从左向右走,是奇数则相反;
然后问题就转化成了求当前行是从左往右走还是从右往左走,那我们就把 k 截取第二部分的步数,根据 k 与 m-1(因为第一行已经走过) 的商是否为偶数来判断走向,然后根据在当前行走的步数来确定具体走到哪一格;
这样的方法可以确定 y ,那怎么确定 x 呢?
你确定了行数 x 不就出来了吗
代码
ps:注释掉的是我一开始的写法,思路一样但是比较冗余,化简后就是这个亚子了
#include<iostream>
#include<cstdio>
#include<queue>
#include<cstdlib>
#include<cmath>
#define maxn 100010
using namespace std;
long long n,m,k,ans,x,y;
int main(){
cin>>n>>m>>k;
if(k<n){
cout<<k+1<<" "<<1;
return 0;
}
k=k-n+1;
long long t=(k-1)/(m-1);
long long q=(k-1)%(m-1);
x=n-t;
if(k==0){
cout<<n<<" "<<1;
return 0;
}
// if(q==0 &&t%2!=0){
// y=m;
// cout<<x<<" "<<y;
// return 0;
// }
// if(q==0 &&t%2==0){
// y=2;
// cout<<x<<" "<<y;
// return 0;
// }
if(x%2==0){
y=q+2;
cout<<x<<" "<<y;
// if ( ((t%2)+1)%2==0 ){
// y=m-q+1;
// }
// if ( ((t%2)+1)%2!=0 ){
// y=q+1;
// }
}
else cout<<x<<" "<<m-q;
// cout<<k<<" "<<q<<" "<<t;
return 0;
}
若有问题请及时告知我,制作不易,不喜勿喷,谢谢。
CF976B的更多相关文章
随机推荐
- 嵌入式Linux-Bmp转jpeg
代码: /**************************************************************************** Ãû³Æ£º jpeg.c ¹ŠÄÜ ...
- 2020DevOps状态报告
这是Puppet报告的走过的第九个年头,本次报告基于对2400名IT.开发.信息安全行业的技术人员的调研,着重勾画了DevOps状态的两大趋势:平台模型.需求变更的管理.多年来,我们已经证明了DevO ...
- linux 下socket编程
原理 类unix系统中, 一切皆文件, 诸如磁盘文件, 显卡, 内核驱动, 网络协议栈等 socket就是linux中提供的用于网络通信的文件接口, 两台机器之间可以读写消息 在使用socket真正的 ...
- 《深入理解Java虚拟机》 Java对象的生命周期
Java虚拟机运行时数据区 方法区:存储 类信息.常量.静态变量.即使编译器编译后的代码等数据,也有别名叫做非堆. 方法区其中有包含有 运行时常量池,用于存放编译期生成的各种字面量和符号引用.其中, ...
- win7-win10 禁用IPV6临时地址
IPV6临时地址本意是保护设备隐私,但有时候需要暂时禁用的情景下指令 netsh interface ipv6 set privacy state=disable 启用则修改最后的状态值为enable ...
- SpringBoot入门及深入
一:SpringBoot简介 当前互联网后端开发中,JavaEE占据了主导地位.对JavaEE开发,首选框架是Spring框架.在传统的Spring开发中,需要使用大量的与业务无关的XML配置才能使S ...
- Ocelot一个优秀的.NET API网关框架
1 什么是Ocelot? Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fab ...
- 【SpringMVC】SpringMVC 异常处理
SpringMVC 异常处理 文章源码 异常处理思路 系统中异常包括两类:预期异常和运行时异常,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减少运行时异常的发生. Cont ...
- 同一个网段内所有服务器virtual_router_id设置相同的后果
/var/log/messages中一直报的错 one or more VIP associated with VRID mismatch actual MASTER advert bogus VRR ...
- 【网络】trunk和vlan配置
篇一 : trunk配置和vlan配置 trunk配置 Switch>enable ? ? ?//进入特权模式 Switch#conf t ? ? ?//进入配置模式 Switch(config ...