2017-2018 ACM-ICPC, Asia Daejeon Regional Contest F(递推)
F题
Problem F Philosopher’s Walk
题意:给你n,m,n代表一个长宽都为2的n次方的格子里,m代表走了从左下角开始走了m米,求最后的坐标。

思路:
看上图很容易便可以看出规律,每幅图都是由上一幅图在自身的四个区域进行不同的变化的到的,如第二幅图中,第一区域是第一副图向左转90度得到的,第二第三区域都是横纵坐标偏移,第四区域是向右转90度且向右移动了一个区域。
那么就可以得出转移的规律:
第一区域:向左转90度只要每个点的横纵坐标互换即可如:2(2,1) 变成 2 (1,2);
第二区域:向上移动一个区域的长度;
第三区域:向上移动一个区域,再向左移动一个区域。
第四区域,向右转90度x1,y1坐标变化为: x = k(一个区域的长度) - y1(原坐标)+ 1; y = k - x1 + 1;(先向左转90度,然后用k - 当前坐标就得到了向右移动90度的公式),再向右移动一个区域的长度就可以了
按照这个规律一直递归推就可以了。
推的头皮发麻。。
实现代码:
#include<bits/stdc++.h>
using namespace std;
struct node {
int x,y;
};
node t;
node solve(int n,int m){
if(n == ){
if(m==){
t.x = ;t.y = ;return t;
}
if(m == ){
t.x = ;t.y = ;return t;
}
if(m == ){
t.x = ;t.y = ;return t;
}
else{
t.x = ;t.y = ;return t;
}
}
int k = n/;
int x = m/(k*k); //判断在上一幅图的哪一个区域
if(x == ){
t = solve(k,m%(k*k));
swap(t.x,t.y);
return t;
}
if(x == ){
t = solve(k,m%(k*k));
t.y += k;
return t;
}
if(x == ){
t = solve(k,m%(k*k));
t.x += k;t.y += k;
return t;
}
if(x == ){
t = solve(k,m%(k*k));
node t1 = t;
t1.x = *k - t.y + ;
t1.y = k - t.x + ;
return t1;
}
} int main()
{
int n,m;
cin>>n>>m;
m--;
node p = solve(n,m);
cout<<p.x<<" "<<p.y<<endl;
}
2017-2018 ACM-ICPC, Asia Daejeon Regional Contest F(递推)的更多相关文章
- ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków
ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...
- 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)
2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest PART(10/12)
$$2017-2018\ ACM-ICPC,\ Asia\ Daejeon\ Regional\ Contest$$ \(A.Broadcast\ Stations\) \(B.Connect3\) ...
- 2018-2019, ICPC, Asia Yokohama Regional Contest 2018 K
传送门:https://codeforces.com/gym/102082/attachments 题解: 代码: /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ...
- 2018 ICPC Asia Jakarta Regional Contest
题目传送门 题号 A B C D E F G H I J K L 状态 Ο . . Ο . . Ø Ø Ø Ø . Ο Ο:当场 Ø:已补 . : 待补 A. Edit Distance Thin ...
- Gym - 101981K The 2018 ICPC Asia Nanjing Regional Contest K.Kangaroo Puzzle 暴力或随机
题面 题意:给你1个20*20的格子图,有的是障碍有的是怪,你可以每次指定上下左右的方向,然后所有怪都会向那个方向走, 如果2个怪撞上了,就融合在一起,让你给不超过5w步,让所有怪都融合 题解:我们可 ...
- Gym - 101981M The 2018 ICPC Asia Nanjing Regional Contest M.Mediocre String Problem Manacher+扩增KMP
题面 题意:给你2个串(长度1e6),在第一个串里找“s1s2s3”,第二个串里找“s4”,拼接后,是一个回文串,求方案数 题解:知道s1和s4回文,s2和s3回文,所以我们枚举s1的右端点,s1的长 ...
- Gym - 101981G The 2018 ICPC Asia Nanjing Regional Contest G.Pyramid 找规律
题面 题意:数一个n阶三角形中,有多少个全等三角形,n<=1e9 题解:拿到题想找规律,手画开始一直数漏....,最后还是打了个表 (打表就是随便定个点为(0,0),然后(2,0),(4,0), ...
- Gym - 101981I The 2018 ICPC Asia Nanjing Regional Contest I.Magic Potion 最大流
题面 题意:n个英雄,m个怪兽,第i个英雄可以打第i个集合里的一个怪兽,一个怪兽可以在多个集合里,有k瓶药水,每个英雄最多喝一次,可以多打一只怪兽,求最多打多少只 n,m,k<=500 题解:显 ...
随机推荐
- 通过cgroup给docker的CPU和内存资源做限制
1.cpu docker run -it --cpu-period=100000 --cpu-quota=2000 ubuntu /bin/bash 相当于只能使用20%的CPU 在每个100ms的时 ...
- 大数据入门第十七天——storm上游数据源 之kafka详解(二)常用命令
一.kafka常用命令 1.创建topic bin/kafka-topics. --replication-factor --zookeeper mini1: // 如果配置了PATH可以省略相关命令 ...
- Android与Libgdx环境配置
此处所说的是基于windows和android版本的libgdx环境配置. 1. 下载所需软件 JDK 1.7. 下载地址: window x86版本地址: http://www.oracle.com ...
- [CF1025F]Disjoint Triangles[极角排序+组合计数]
题意 平面上有 \(n\) 个点,选出六个点构成两个三角形,问有多少种构造方式使得两个三角形没有交集. \(n\leq 2000\) 分析 枚举连接两个三角形的两个顶点,同时能够将两个三角形划分在直线 ...
- PowerBI开发 第十三篇:增量刷新
PowerBI 将要解锁增量刷新(Incremental refresh)功能,这是一个令人期待的更新,使得PowerBI可以加载大数据集,并能减少数据的刷新时间和资源消耗,该功能目前处于预览状态,只 ...
- 真机调试傻瓜图文教程(Xcode6.4)
先准备好99刀,真机调试才带你玩. PS:万能宝十来块钱可以买个资格... Developer Apple上的设置 1.打开https://developer.apple.com/,点击Member ...
- stl源码剖析 详细学习笔记 算法(5)
//---------------------------15/04/01---------------------------- //inplace_merge(要求有序) template< ...
- 关于元素设置margin-top能够改变body位置的原因及解决(子元素设置margin-top改变父元素定位)
关于元素设置margin-top能够改变body位置的原因及解决(子元素设置margin-top改变父元素定位) 起因:在进行bootstrap的.navbar-brand内文字设置垂直居中时采用li ...
- RabbitMq基础教程之基本概念
RabbitMq基础教程之基本概念 RabbitMQ是一个消息队列,和Kafka以及阿里的ActiveMQ从属性来讲,干的都是一回事.消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之 ...
- 按键精灵对APP自动化测试(下)
上一篇介绍了安卓app上使用按键精灵的实践,这里再来说说苹果上的app. 由于iOS相关工具对操作系统的限制,目前在iOS10.0.2系统上应用成功. 二. 苹果手机按键精灵APP录制 适 ...