首页 > 试题广场 >

坐标计数

[编程题]坐标计数
  • 热度指数:697 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
定义一个坐标变换,坐标 (x,y) 变换后变为

给定一片矩形区域,计算区域内有多少个整数点在经过有限次变换后变为 (0,0)。

输入描述:
输入第一行一个数字 ,表示测试数据组数

接下来一行四个数字   代表给出的矩形区域

(x_1,y_1)为矩形区域左下角, (x_2,y_2)表示矩形右上角,包含边界上的点。

输入保证有 


输出描述:
输出区域内满足变换要求的整数点个数
示例1

输入

2
1 1 3 4
1 2 2 5

输出

12
8
头像 (́安◞౪◟排‵)
发表于 2021-01-11 08:03:26
我一看到此题,啪的一下,很快啊,就打了一个暴力,如下: #include<bits/stdc++.h> using namespace std; bool check(int x,int y,int k) { if(x==0&&y==0) return 1; 展开全文
头像 kilomatutinal
发表于 2026-02-12 00:32:35
好简单的数学题喵~先说结论喵!不管是什么坐标都会在有限次内变成(0,0)喵!所以直接求面积就可以了喵!接下来解释为什么喵!如果想要无限次变化需要满足每次变化都是他自己喵所以x^y==x且x==2y。简单运算可得只有(0,0)符合喵!欸!这个时候就要小猫要说啦。“猫猫猫猫!有没有可能(x,y)转换成( 展开全文
头像 AlwaysAim
发表于 2026-02-12 23:52:41
#include <bits/stdc++.h> using namespace std; int main() { int t; cin>>t; while(t--) { long long x1,y1,x2,y2; 展开全文
头像 MrAsleeep
发表于 2026-02-12 00:35:55
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { int t; cin>>t; while(t--){ int a,b 展开全文
头像 Turgen
发表于 2026-02-12 00:39:57
观察样例发现就是矩阵面积,打个表,发现1e5以内的坐标都可以通过简单的几次变化到,猜结论就是矩阵面积,于是直接输出。注意输出要用LL就是 #include <bits/stdc++.h> using namespace std; typedef long long ll; void s 展开全文
头像 YunBaichuan
发表于 2026-02-12 10:22:24
思路:思维题。开始写了个纯暴力跑了一下(打表),然后观察找规律,感觉可能是矩形覆盖的所有整数点。答案确实就是这个,直接输出结果即可 代码: import sys input = lambda: sys.stdin.readline().strip() import math inf = 10 ** 展开全文
头像 为芙宁娜献出心脏
发表于 2026-02-12 11:04:54
这道题最开始我并没有什么思路,但是看了一下样例发现每个样例的结果就是矩阵里面点的个数,所以本着guess的想法试了一下,然后就过了 现在回来想办法证明一下。首先通过模拟我们可以发现,点的坐标整体走向是变小的。既然如此,如果要有无限次变换那么就只能是每次变换都是它本身或者是x,y坐标交换 首先每次变换 展开全文