UVALive 3695 Distant Galaxy (部分枚举,扫描维护)
来源:互联网 发布:在淘宝上开店收费吗 编辑:程序博客网 时间:2024/04/29 05:21
http://acm.hust.edu.cn/vjudge/contest/131137#problem/C
题解:
这道题,还是大白书的。
确实没什么想法,想了很久也不知道该怎么写。
最暴力的就是直接枚举4个边界,然后统计一下。这样是O(n^5)的复杂度。
当然考虑优化:
我们仅仅枚举上下界,然后枚举右边界的时候可以顺便维护ans和M=on[j]-Left[j]。
当然,我是直接两重循环维护ans的,所以也不需要维护M。
#include<bits/stdc++.h>using namespace std;const int maxn=105;pair<int,int> P[maxn];int Left[maxn],on[maxn],on2[maxn],Y[maxn];int n;int Solve() { int newL=unique(Y,Y+n)-Y; if(newL<=2)return n; int ans=0; for(int i=0; i<newL; ++i) { for(int j=i+1; j<newL; ++j) { int yMin=Y[i],yMax=Y[j],num=0; for(int k=0; k<n; ++k) { if(k==0 || P[k].first^P[k-1].first) { ++num; on[num]=on2[num]=0; Left[num]=(num==0?0:Left[num-1]+on2[num-1]-on[num-1]); } on[num]+=(P[k].second>yMin&&P[k].second<yMax); on2[num]+=(P[k].second>=yMin&&P[k].second<=yMax); } if(num<=2)return n; for(int k=1;k<=num;++k){ for(int l=k+1;l<=num;++l){ ans=max(ans,Left[l]-Left[k]+on2[l]+on[k]); } } } } return ans;}int main() { int Tcase=0; while(~scanf("%d",&n),n) { for(int i=0; i<n; ++i) { scanf("%d%d",&P[i].first,&P[i].second); Y[i]=P[i].second; } sort(P,P+n),sort(Y,Y+n); printf("Case %d: %d\n",++Tcase,Solve()); } return 0;}
0 0
- UVALive 3695 Distant Galaxy (部分枚举,扫描维护)
- LA 3695 Distant Galaxy (部分枚举+扫描法)
- UVALive 3695 Distant Galaxy(枚举)
- Shanghai 2006 / UVa 1382 Distant Galaxy (枚举&扫描&动态维护)
- UVALive - 3695 Distant Galaxy 暴力
- uva1382 - Distant Galaxy 部分枚举 递推
- LA 3695 Distant Galaxy(扫描线)
- LA 3695 Distant Galaxy 扫描线 -
- uva 1382 Distant Galaxy (枚举&&扫描&&贪心dp)
- UVALive 3695 Distant Galaxy 用矩阵的边覆盖二维平面上最多的点 科学的枚举
- Shanghai 2006,UVaLive(LA) 3695 Distant Galaxy题解
- uva1382- Distant Galaxy (枚举)
- LA 3695 Distant Galaxy
- UVa1382--Distant Galaxy(离散化+扫描线)
- uva 1382 - Distant Galaxy(枚举)
- 【瞎搞】 HDU 3299 Distant Galaxy 枚举
- uva 1382 Distant Galaxy (枚举)
- UVA 1382 Distant Galaxy(枚举优化)
- CentOS上Nginx下载安装
- OC字符串常用函数
- 【u025】贝茜的晨练计划
- 如何用Tensorflow实现增强版本的Mnist手写识别网络模型
- 【JavaWeb】Redis存储Session方案
- UVALive 3695 Distant Galaxy (部分枚举,扫描维护)
- FFMPEG 学习(三)
- 【51单片机学习过程记录】 2LED点亮
- 我期望的Android APP开发方式
- 数组
- P1788 第k大
- Java中运用数组的四种排序方法
- OC字符串高级操作
- Listview的理解①