学校网站建设的重要性,wordpress更新主题后错误500,wordpress什么读,公众号开发退款步骤题目描述
本题有多组数据。
给定 n 个点#xff0c;第 i 个点的坐标为 xi#xff0c;yi。
现需要将星星和指南针放在任意两个点上#xff0c;使得星星在指南针的正北、正东、正西、正南、正东南、正东北、正西南或正西北方向#xff0c;求一共几种放法。#xff08…
题目描述
本题有多组数据。
给定 n 个点第 i 个点的坐标为 xiyi。
现需要将星星和指南针放在任意两个点上使得星星在指南针的正北、正东、正西、正南、正东南、正东北、正西南或正西北方向求一共几种放法。如果对此不太理解结合样例解释
输入格式
第一行输入一个t表示数据组数。
在每组数据中输入n表示点的总数。
接下来 n 行第i行输入两个数 xi,yi表示第i个点的坐标。
输出格式
输出共t行每行一个整数表示第i组数据的结果。
提示
在第一组数据中
指南针在 (0,0)(0,0)星星在 (−1,−1)(−1,−1)在指南针的正西南方向。
指南针在 (0,0)(0,0)星星在 (1,1)(1,1)在指南针的正东北方向。
指南针在 (−1,−1)(−1,−1)星星在 (0,0)(0,0)在指南针的正东北方向。
指南针在(−1,−1)(−1,−1)星星在(1,1)(1,1)在指南针的正东北方向。
指南针在(1,1)(1,1)星星在(0,0)(0,0)在指南针的正西南方向。
指南针在(1,1)(1,1)星星在(−1,−1)(−1,−1)在指南针的正西南方向。
所以答案为6。
在第二组数据中
指南针在(6,9)(6,9)星星在(10,13)(10,13)在指南针的正东北方向。
指南针在(10,13)(10,13)星星在(6,9)(6,9)在指南针的正西南方向。
所以答案是 2。
参考代码
#include bits/stdc.h
#define ll long long
using namespace std;ll x[200005], y[200005];bool Z(ll x1, ll y1, ll x2, ll y2)
{return (abs(x1 - x2) abs(y1 - y2)) ? true : false;
}bool north(int z, int star)
{return (x[z] x[star] y[z] y[star]) ? true : false;
}bool south(int z, int star)
{return (x[z] x[star] y[z] y[star]) ? true : false;
}bool west(int z, int star)
{return (y[z] y[star] x[z] x[star]) ? true : false;
}bool east(int z, int star)
{return (y[z] y[star] x[z] x[star]) ? true : false;
}bool eastsouth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star]) x[z] x[star] y[z] y[star]) ? true : false;
}bool eastnorth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star]) x[z] x[star] y[z] y[star]) ? true : false;
}bool westsouth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star]) x[z] x[star] y[z] y[star]) ? true : false;
}bool westnorth(int z, int star)
{return (Z(x[z], y[z], x[star], y[star]) x[z] x[star] y[z] y[star]) ? true : false;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);int t;cint;while(t--){int n, ans 0;cinn;for(int i 1; i n; i)cinx[i]y[i];for(int i 1; i n; i){for(int j 1; j n; j){if(i j)continue;if(north(i, j) || south(i, j) || west(i, j) || east(i, j))ans;else if(eastnorth(i, j) || eastsouth(i, j) || westnorth(i, j) || westsouth(i, j))ans;}}coutans\n;}return 0;
}