习题5-6 对称轴 UVa1595
来源:互联网 发布:gif动态图片编辑软件 编辑:程序博客网 时间:2024/04/19 21:44
1.题目描述:点击打开链接
2.解题思路:判断是否对称只需要看x坐标,因此可以先将每个y值分配一个ID;先判断是否自对称,如果都是,进一步判断所有自对称的对称轴是否都相同,注意用对称轴坐标的二倍来判断,尽量避免浮点数的使用。
3.代码:
#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<cassert>#include<cstdlib>#include<ctime>#include<cmath>#include<cstring>#include<functional>using namespace std;const int maxn = 1000 + 10;vector<int>dot[maxn];vector<int>arr;map<int,int>yid;int sym[maxn];int ID(int y){if (yid.count(y))return yid[y];else{arr.push_back(y);yid[y] = arr.size() - 1;return yid[y];}}bool is_sym(int p){int len = dot[p].size();if (len == 1 || len == 2) return true;else if (len % 2){int mid = len / 2;int x = dot[p][mid] * 2;for (int i = 0; i < mid;i++)if (dot[p][i] + dot[p][len - i - 1] != x)return false;return true;}else{int mid = len / 2;int x = dot[p][0] + dot[p][len - 1];for (int i = 0; i < mid;i++)if (dot[p][i] + dot[p][len - 1 - i] != x)return false;return true;}}int main(){int T;cin >> T;while (T--){int n;int flag = 1;memset(sym, 0, sizeof(sym));arr.clear();yid.clear();for (int i = 0; i < maxn; i++)dot[i].clear();cin >> n;for (int i = 0; i < n; i++){int x, y;cin >> x >> y;dot[ID(y)].push_back(x);}int len = arr.size();for (int i = 0; i < len; i++)sort(dot[i].begin(), dot[i].end());for (int i = 0; i < len;i++)if (!is_sym(i)){flag = 0;break;}elsesym[i] = dot[i][0] + dot[i][dot[i].size() - 1];if (flag){int x = sym[0];for (int i = 0; i < len;i++)if (sym[i] != x){flag = 0;break;}}if (flag)cout << "YES" << endl;elsecout << "NO" << endl;}return 0;}
0 0
- 习题5-6 对称轴 UVa1595
- 习题5-6 对称轴 UVA1595
- 习题5-6 对称轴(Symmetry, UVa1595)
- 算法竞赛入门经典 第二版 习题5-6 对称轴 Symmetry uva1595
- 算法竞赛入门经典(第2版)习题5-6 对称轴(Symmetry) Uva1595
- UVA1595-对称轴
- UVA1595(对称轴)
- 紫书习题5-6 uva1595
- Uva1595 Symmetry 【set集合】【习题5-6】
- uva1595对称轴 STL模拟
- uva1595 Symmetry 习题5-6 (用结构体解决)
- 关于"对称轴 (Symmetry, ACM/ICPC Seoul 2004, UVa1595"的讨论
- 5-6 UVA 1595 Symmetry对称轴
- 对称轴
- 章五习题六 对称轴 Symmetry (map,vector)
- [刷题]算法竞赛入门经典(第2版) 5-6/UVa1595 - Symmetry
- UVa1595 - Symmetry
- UVa1595 - Symmetry
- 真正的大数据“圈内人”包含哪几种人
- Codeforces Round #249 (Div. 2) —— B
- LoadRunner中think time详解 .
- hdu 1597 find the nth digit
- Python语言(三)类型扩展
- 习题5-6 对称轴 UVa1595
- Java 反射机制
- 用python给文件夹下所有图片进行缩放处理
- IE6兼容性总汇
- LWIP程序OPT.h头文件的各种定义
- hdu1559,1081最大子矩阵和的两种题型
- ftp批量下载 单个下载
- LeetCode-Rotate List
- struts2 action重定向action