uva_1338_distant galaxy
来源:互联网 发布:产品原型设计软件 编辑:程序博客网 时间:2024/05/17 07:50
#include<iostream> #include<sstream> #include<string> #include<vector> #include<list> #include<set> #include<map> #include<stack> #include<queue> #include<algorithm> #include<numeric> #include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #pragma warning(disable:4996) using namespace std;class Point{public:int x, y;friend bool operator<(const Point& a, const Point& b){if (a.x != b.x){return a.x < b.x;}return a.y < b.y;}};int getAns(const vector<Point>&coordinate, vector<int>&coordinate_y){int ans = 0;for (size_t i = 0; i < coordinate_y.size(); i++){for (size_t j = i + 1; j < coordinate_y.size(); j++){int y_min = coordinate_y[i], y_max = coordinate_y[j], line = -1;vector<int>left(coordinate.size()), on1(coordinate.size()), on2(coordinate.size());for (int k = 0; k < coordinate.size(); k++){if (!k || coordinate[k].x != coordinate[k - 1].x){line++;if (line){left[line] = left[line - 1] + on2[line - 1] - on1[line - 1];}}if (coordinate[k].y > y_min && coordinate[k].y < y_max){on1[line]++;}if (coordinate[k].y >= y_min && coordinate[k].y <= y_max){on2[line]++;}}int increment = 0;for (int t = 0; t <= line; t++){ans = max(ans, left[t] + on2[t] + increment);increment = max(increment, on1[t] - left[t]);}}}return ans;}int main(){//freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout);int n, cas = 1;while (cin >> n && n){//接收数据&离散化vector<Point>coordinate(n);vector<int>coordinate_y(n);map<int, int>discrete_x, discrete_y;for (int i = 0; i < n; i++){cin >> coordinate[i].x >> coordinate[i].y;discrete_x.insert({ coordinate[i].x,0 });discrete_y.insert({ coordinate[i].y,0 });}int count = 0;for (auto iter = discrete_x.begin(); iter != discrete_x.end(); iter++){iter->second = count++;}count = 0;for (auto iter = discrete_y.begin(); iter != discrete_y.end(); iter++){iter->second = count++;}for (int i = 0; i < n; i++){coordinate[i].x = discrete_x[coordinate[i].x];coordinate_y[i] = coordinate[i].y = discrete_y[coordinate[i].y];}if (discrete_x.size() <= 2 || discrete_y.size() <= 2){printf("Case %d: %d\n", cas++, n);continue;}sort(coordinate.begin(), coordinate.end());sort(coordinate_y.begin(), coordinate_y.end());auto iter = unique(coordinate_y.begin(), coordinate_y.end());coordinate_y.resize(iter - coordinate_y.begin());printf("Case %d: %d\n", cas++, getAns(coordinate, coordinate_y));}return 0;}
0 0
- uva_1338_distant galaxy
- galaxy
- Distant Galaxy
- Galaxy W
- Distant Galaxy
- 使用 Galaxy
- StarMx,Jopr,Galaxy
- StarMx,Jopr,Galaxy介绍
- 三星galaxy tab
- 三星i9000 Galaxy S
- 三星GALAXY Note评测
- Galaxy Nexus 屏保
- Rooting Samsung galaxy W
- Galaxy Note root小结
- galaxy nexsus kernel 未完成
- POJ-3141-Distant Galaxy
- uva 1382 - Distant Galaxy
- hdu_3299_Distant Galaxy( DP )
- vs 编译zint库 zint库依赖 zlib库和libpng库---------------------完全正确 亲自试验
- 更改Ubuntu系统语言——中文到en
- CSS自适应布局总结
- viewpager中点击item问题,viewpager中onclick失效问题
- itunes 安装ios应用包
- uva_1338_distant galaxy
- 第12章 Java内存的模型与线程
- 2016-5-20
- 机器学习: 神经网络中的Error函数
- Survive in the White Terror
- bootstrap模态框配置
- Struts2与Spring集成中的自动装配策略
- cuda中的矩阵乘法
- JAVA异常信息Exception e,e的相关方法