UVA
来源:互联网 发布:淘宝助手 编辑:程序博客网 时间:2024/05/16 13:56
/* 可用暴力破解的方法,思路如下: 先假设对称轴存在,且其为 x = xmid,那么对称轴肯定为为左端和最右端中点的平均数 xmid = ( xmin + xmax) / 2 如果x = x0真为对称轴,对任意的 xi,都会有 xj = 2 * xmid - xi; 鉴于求xmid涉及除以2,但是判断的时候,却可以用对称轴横坐标的两倍来判断,出于精度和误差方面的考虑,我们便可不用除法了,直接 xmid = xmin + xmax; 但判断时,注意变成找到满足 xj = xmid - xi的j 思路来自: http://blog.csdn.net/acvay/article/details/43015507*/
#include <iostream>using namespace std;const int maxn = 1005;int x[maxn], y[maxn], xmid, n;bool solve(){for (int i = 0; i < n; i++){bool flag = 1; //为1说明没找到该点关于对称轴的对称点for (int j = 0; j < n; j++)if (x[i] + x[j] == xmid && y[i] == y[j]){flag = 0;break;} if (flag) return false;}return true;}int main(){int t, mini, maxi; //后两个变量为横坐标最小时对应的i,和横坐标最大时对应的i cin >> t;while (t--){mini = maxi = 0;cin >> n;for (int i = 0; i < n; i++){cin >> x[i] >> y[i];if (x[i] < x[mini]) mini = i;if (x[i] > x[maxi]) maxi = i;}xmid = x[mini] + x[maxi];if ( solve() ) cout << "YES" << endl;else cout << "NO" << endl;}return 0;}
/* edition2 只能算版本2,而不能算法2,因为思路本质上和法1时一模一样的 有几个区别,不过算是细节上的区别: 1. 用到了set和set有关的函数,例如insert()和find(),我子集做题时用到的更多的时map,所以set的用法可以从这里学习一下 2. 求对称轴的横坐标时,用的是所有边横坐标 / n,但在输入以后,把横坐标扩大n倍,以避免小数误差。 然而其实法1的借鉴的blog里,就是这么写的,只是把n换为了2罢了... 不过,我在法1的代码,没有完全用法1借鉴的博客,由于发现判断时要乘以2,所以该除的地方没除,该乘的没乘 参考blog: http://blog.csdn.net/majing19921103/article/details/43275901*/
#include <iostream>#include <set>using namespace std;int n, sum;typedef pair<int, int> P;set<P> loc; //locationvoid solve(){bool flag = true;for (set<P>::iterator i = loc.begin(); i != loc.end(); i++){P p = *i;if (loc.find(P(2 * sum - p.first, p.second)) == loc.end()){flag = false;break;}}if (flag) cout << "YES" << endl;else cout << "NO" << endl;}int main(){int t, x, y;cin >> t;while (t--){loc.clear(); //此处很容易忘记,小心! sum = 0;cin >> n;for (int i = 0; i < n; i++){cin >> x >> y;loc.insert(P(x * n, y));sum += x;}solve();}return 0;}
阅读全文
0 0
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- python的os模块
- 【1】Mac下搭建Gradle环境
- 自定义MappingJackson2HttpMessageConverter的objectMapper实现Mongodb自定义序列化与反序列化
- 时间序列预测
- python os模块 常用命令
- UVA
- EJBCA安装打印信息2
- 微信朋友圈广告开发
- 求一个整数数组的最大元素,用递归方法实现
- HTML (Hyper Text Markup Language) 常用标签 H
- Linux内核的并发与同步
- UVa 12569
- 图像识别之目标物体坐标确定(9月3日临时笔记)
- JAVA中的权限修饰符