您的位置:首页 > 娱乐 > 八卦 > 关键词热度分析工具_移动互联网的应用举例_网站制作建设_北京seo邢云涛

关键词热度分析工具_移动互联网的应用举例_网站制作建设_北京seo邢云涛

2024/12/23 4:21:40 来源:https://blog.csdn.net/2301_80882026/article/details/143372727  浏览:    关键词:关键词热度分析工具_移动互联网的应用举例_网站制作建设_北京seo邢云涛
关键词热度分析工具_移动互联网的应用举例_网站制作建设_北京seo邢云涛

Conveyor Belts

题面翻译

传送带

题目描述

传送带 $ m_n $ 是一个大小为 $ n \times n $ 的矩阵,其中 $ n $ 是一个偶数。矩阵由顺时针移动的同心带组成。

换句话说,当 n = 2 n=2 n=2 时,传送带矩阵就是一个 2 × 2 2 \times 2 2×2 的矩阵,其单元格形成顺时针长度为 4 4 4 的循环。对于任何自然数 k ≥ 2 k \ge 2 k2,矩阵 m 2 k m_{2k} m2k 是通过向矩阵 m 2 k − 2 m_{2k-2} m2k2 添加形成顺时针循环的外层而获得的。

你站在坐标为 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) 的单元格上,想要到达坐标为 ( x 2 , y 2 ) (x_2,y_2) (x2,y2) 的单元格。每秒钟你会移动到你所在的带子上的下一个单元格。你也可以通过花费一单位能量移动到相邻的单元格。移动是即时发生的,你可以随时进行无限次移动。

你的任务是找到从坐标为 ( x 1 , y 1 ) (x_1,y_1) (x1,y1) 的单元格到坐标为 ( x 2 , y 2 ) (x_2,y_2) (x2,y2) 的单元格所需的最小能量。

例如,当 n = 8 n=8 n=8 时,你最初在坐标为 ( 1 , 3 ) (1,3) (1,3) 的单元格中,并且你想要进入坐标为 ( 6 , 4 ) (6,4) (6,4) 的单元格。你可以立即进行 2 2 2 次移动

题目描述

Conveyor matrix $ m_n $ is matrix of size $ n \times n $ , where $ n $ is an even number. The matrix consists of concentric ribbons moving clockwise.

In other words, the conveyor matrix for $ n = 2 $ is simply a matrix $ 2 \times 2 $ , whose cells form a cycle of length $ 4 $ clockwise. For any natural $ k \ge 2 $ , the matrix $ m_{2k} $ is obtained by adding to the matrix $ m_{2k - 2} $ an outer layer forming a clockwise cycle.

The conveyor matrix $ 8 \times 8 $ . You are standing in a cell with coordinates $ x_1, y_1 $ and you want to get into a cell with coordinates $ x_2, y_2 $ . A cell has coordinates $ x, y $ if it is located at the intersection of the $ x $ th row and the $ y $ th column.

Standing on some cell, every second you will move to the cell next in the direction of movement of the tape on which you are. You can also move to a neighboring cell by spending one unit of energy. Movements happen instantly and you can make an unlimited number of them at any time.

Your task is to find the minimum amount of energy that will have to be spent to get from the cell with coordinates $ x_1, y_1 $ to the cell with coordinates $ x_2, y_2 $ .

For example, $ n=8 $ initially you are in a cell with coordinates $ 1,3 $ and you want to get into a cell with coordinates $ 6, 4 $ . You can immediately make $ 2 $ movements, once you are in a cell with coordinates $ 3, 3 $ , and then after $ 8 $ seconds you will be in the right cell.

输入格式

The first line contains an integer $ t $ ( $ 1 \le t \le 2 \cdot 10^5 $ ) — the number of test cases.

The descriptions of the test cases follow.

The description of each test case consists of one string containing five integers $ n $ , $ x_1 $ , $ y_1 $ , $ x_2 $ and $ y_2 $ ( $ 1 \le x_1, y_1, x_2, y_2 \le n \le 10^9 $ ) — matrix size and the coordinates of the start and end cells. It is guaranteed that the number $ n $ is even.

输出格式

For each test case, print one integer in a separate line — the minimum amount of energy that will have to be spent to get from the cell with coordinates $ x_1, y_1 $ to the cell with coordinates $ x_2, y_2 $ .

样例 #1

样例输入 #1

5
2 1 1 2 2
4 1 4 3 3
8 1 3 4 6
100 10 20 50 100
1000000000 123456789 987654321 998244353 500000004

样例输出 #1

0
1
2
9
10590032

思路:将物件放在同一区域在进行计算更好

AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 2e6 + 10;
const int M = 1e9 + 7;
const int MOD = 998244353;
typedef long long ll;
typedef pair<ll,ll>PII;
typedef pair<double, double>PDD;int dx[] = {1, 1, -1, -1, 2, 2, -2, -2};
int dy[] = {2, -2, 2, -2, 1, -1, 1, -1};int t;
int main()
{cin >> t;while(t --){ll n, a, b, c, d;cin >> n >> a >> b >> c >> d;if(a > n / 2) a = n - a + 1;if(b > n / 2) b = n - b + 1;if(c > n / 2) c = n - c + 1;if(d > n / 2) d = n - d + 1;//让两个物件处于左上角//处在第几层ll o1 = min(a, b), o2 = min(c, d);cout << abs(o1 - o2) << endl;}return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com