Codeforces1300D. Aerodynamic
2024-09-04 03:15:40
本题题目有点绕,结合图例大概可知,P(x,y)是以点给出的一个凸包,T是一个点集合,也构成一个凸包,构成的方法就是将原点(0,0)在P(x,y)的边上跑,移动坐标轴,其构成的最远点是个凸包,我们可以画出几个例子,可以看出,T一定是中心对称图形,而P与T相似,P也一定要是中心对称图形,且如果P是奇数条边就一定不满足条件,直接对x,y坐标判断是否是中心对称图形即可,相邻两个点坐标之差与对称的点的差相同
#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) ((x)&(-x))
typedef long long LL; void run_case() {
int n;
cin >> n;
vector<int> x(n+), y(n+);
for(int i = ; i <= n; ++i) cin >> x[i] >> y[i];
if(n & ) {
cout << "NO";
return;
}
n >>= ;
for(int i = ; i <= n; ++i)
if(x[i+]-x[i] != x[(i+n)]-x[(i+n)%(*n)+] || y[i+]-y[i] != y[(i+n)]-y[(i+n)%(*n)+]) {
cout << "NO";
return;
}
cout << "YES"; } int main() {
ios::sync_with_stdio(false), cin.tie();
//int t; cin >> t;
//while(t--)
run_case();
cout.flush();
return ;
}
最新文章
- IoC原理-使用反射/Emit来实现一个最简单的IoC容器
- MySQL 复制表
- Notes on &#39;Efficient Graph-Based Image Segmentation&#39;
- sqlserver快速查找所有存储过程中是否包含某字符
- Ubuntu14.04忘记root密码的解决方法
- SGU 114
- Things App Engine Doesn&#39;t Do...Yet
- android_定义多个Activity及跳转
- 多表查询 INNER JOIN ON WHERE
- OJ:一道考察多态的题目
- 一文看懂npm、yarn、pnpm之间的区别
- easyui增删改查前段代码
- 009 使用servlet API作为参数
- 【阿里巴巴Java开发手册——集合处理】13.集合的稳定性(order)和有序性(sort)
- WaitingFormHelper
- jquery 获取表单的用户输入值的方法
- windows10如何打开vhd文件
- MySQL--Alter Table注意事项
- Hibernate(四)结构-基础语义和事务
- centos 6无法上外网