UVA1595_Symmetry
给出平面上n个点,问你能不能找到一个竖线让他们对称
这道题后面发现真的不难,又不止一种方法
我当时写的很挫,死脑筋的就找一个点的对称点存不存在,用结构体存点信息,在排序用find找,,然后不知道一堆wa
后面发现排序之后,如果位置i和n-i-1这两个点不对称就一定不存在!!!!
可以用反证法得知
//
// Created by Zeroxf on 2015-08-19-15.36
// Copyright: (c) 2015 Zeroxf. All rights reserved
//
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<queue>
#include<cstdlib>
#include<algorithm>
#include<stack>
#include<map>
#include<queue>
#include<vector>
using namespace std;
struct node{
int x,y;
node(int x,int y):x(x),y(y){}
bool operator < (const node& rhs)const{
return x < rhs.x||(x==rhs.x&&y<rhs.y);
}
bool operator != (const node& rhs)const{
return x != rhs.x || y != rhs.y;
}
};
vector<node> v;
const int maxn = 1e5;
long long t,n,sum,ok,mid;
int x,y;
int main(){
cin>>t;
while(t--){
cin>>n;
sum = 0; ok =true;v.clear();
for(int i = 0; i < n; i++){
scanf("%d%d",&x,&y);
sum += x;
v.push_back(node(x,y));
}
if((sum*2)%n != 0) ok = false;
else {
sort(v.begin(),v.end());
mid = sum *2 /n;
for(int i = 0;i < v.size(); i++){
node findv(mid-v[i].x,v[i].y);
int pos = lower_bound(v.begin(), v.end(), findv) - v.begin();
if(pos>=v.size()||v[pos]!=findv){
ok = false;break;
}
}
}
if(ok) cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
UVA1595_Symmetry的更多相关文章
随机推荐
- 控制banner内容
Spring Boot启动的时候默认的banner是spring的字样,看多了觉得挺单调的,Spring Boot为我们提供了自定义banner的功能. 自定义banner只需要在resource下新 ...
- swiper.js 响应式多图轮播特效
swiper.js实现响应式的左右切换图片案例展示布局 1.head引入css文件 <link type="text/css" rel="stylesheet&qu ...
- APACHE两种域名跳转法简单完成重定向
当我们变更网站域名,或者申请多个域名指向一个网站的时候,这个时候我们就会用到域名跳转(或者叫域名重定向redirect.域名转向).下面用最简单的文字讲两种apache的域名跳转方法. 假设我们想把w ...
- c# 使用网站的身份验证及 Cookie 的获取与使用
C# 的 Http 访问可以使用 .net 自带的 HttpWebRequest, WebClient, HttpClient 类.也可以使用开源库 RestSharp . RestSharp 的优 ...
- nuxt+高德地图实现多边形区域检索
我已经放弃百度地图了,为什么呢? 原因一: 百度地图api太乱不容易查阅 原因二: 百度给出的案例太少,可参考项太少 第三点也是最重要的,百度地图花钱,百度地图花钱,百度地图花钱, 很荣幸,作为国内唯 ...
- C++ I/O库练习
编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个独立的元素存于vector中,并输出. 思路:1.以读的模式打开文件“目录.txt”: 2.先创建str ...
- Pandas之loc\iloc\ix
---------------------------------------------------------------------------------------------------- ...
- 力扣——single number (只出现一次的数字) python实现
题目描述: 中文: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 英 ...
- 调整Winfrom控件WebBrowser的默认浏览器内核版本
一.问题解析: 今天在调试程序的时候,需要使用C#的客户端远程登录一个Web页面,用到了WebBrowser控件.但是却发现了一件很神奇的事情:当前浏览器使用的内核,可以通过访问下面这个网站获取:ht ...
- webpack学习(一)起步安装
起步 webpack 用于编译 JavaScript 模块.一旦完成安装,你就可以通过 webpack 的 CLI 或 API 与其配合交互.如果你还不熟悉 webpack,请阅读核心概念和打包器 ...