占点游戏(数学)
来源:互联网 发布:中国那个朝代最弱知乎 编辑:程序博客网 时间:2024/04/29 18:39
Problem B: 占点游戏
Maple在一个无限展开的只有整数点的二维平面上找到两个点,由TMK和Maple分别操控这两个点,两人轮流操作,每一次操作中TMK或Maple可以把他的点移动一格到上、下、左、右四个方向,当TMK操作时,移动到的这个点会被染成红色,而当Maple操作时,移动到的这个点会被染成蓝色,需要注意的是,两个起始时的两个点也都会被染上相应的颜色,而当任一人走到已经染了不同颜色的点,这个颜色会被覆盖掉,当两个点覆盖在一起时,这个点会被后来的点染色。当游戏结束时染着自己颜色的点就代表被自己占领了。TMK一下就明白了,这个游戏的目标是让自己占领的点比对方占领的点多,而且要让差值最大。为了公平一些,Maple决定让TMK来选择先手或后手和让TMK来选择点,相应的Maple就会选择另一个点。现在给出游戏的总轮数N,Maple选择的两个点的坐标(x1,y1),(x2,y2),要TMK来选择先后手和起始点,假设Maple一定按最优策略来走,问TMK能不能选择先后手和起始点使得自己占领的点比Maple占领的多,如果能,那么同时要求出占领的点数的最大差值。
Input
第一行一个T,代表接下来有T组数据(1<=T<=2000)。每组数据有五个整数N,x1,y1,x2,y2,代表了操作的总轮数N以及选择的两个起始点(x1,y1),(x2,y2),其中1<=N<=10^8,-10^8<=x1,y1,x2,y2<=10^8,数据保证两个点不相同。
Output
对于每一组数据,如果TMK占领的点不能比Maple占领的多,那么输出-1,否则输出两个占领点数的最大差值。
Sample Input
4
1 0 0 1 0
2 0 0 1 0
1 0 0 2 0
2 0 0 2 0
Sample Output
2
-1
1
-1
链接:http://gdutcode.sinaapp.com/problem.php?cid=1057&pid=1
思路:
其实一开始一点思路都没有,后面看题解首先判断两个点之间的距离是否大于每个人能够走的步数,如果走不到的话,要么先手比后手多走一步,要么平局。然后判断 n 和 k 的奇偶性,其实不太懂
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;int main(){ int t; cin >> t; while(t--) { int n,x1,x2,y1,y2; cin >> n >> x1 >> y1 >> x2 >> y2; int d = abs(x1-x2) + abs(y1-y2); if((n+1)/2 < d) { if(n%2 == 1) cout << 1 << endl; else cout << -1 << endl; } else { if(d%2 == 1) { if(n%2 == 1) cout << 2 << endl; else cout << -1 << endl; } else { if(n%2 == 1) cout << 1 << endl; else cout << -1 << endl; } } } return 0;}
0 0
- 占点游戏(数学)
- 占点游戏
- 游戏开发中的数学和物理算法(1):定义点
- 游戏开发中的数学和物理算法(3):点之间的距离
- 游戏开发中的数学和物理算法(1):定义点
- 游戏开发中的数学和物理算法(3):点之间的距离
- 游戏开发中的数学和物理算法(13):点积和叉积
- 游戏开发中的数学和物理算法(1):定义点
- 游戏开发中的数学和物理算法(3):点之间的距离
- 游戏开发中的数学和物理算法(13):点积和叉积
- 几个占点
- 游戏数学
- 24点游戏(java)
- dfs(vijos113424点游戏)
- nyoj--68--三点顺序(数学)
- 【数学基础】取石子游戏(一)
- 游戏中的数学与物理(一)
- 如何赢得数学游戏(博弈问题)
- ios block传值 最简单的方法
- [FFMPEG-MUX]MPEGTS
- 让爱变的有力量
- 上传自己的网站
- 文章标题
- 占点游戏(数学)
- Android中XUtils3详细使用及介绍
- ignite使用sql查询的问题
- phpcms模板中显示内容数据
- 怎么在Editplus配置PHP(超详细)
- bzoj1089: [SCOI2003]严格n元树
- 精通Oracle SQL(第二版)读书笔记
- spring boot 配置静态资源
- tinyumbrella 9(小雨伞)无法打开(Crash、自动关闭)的解决方法