【Wc2002】奶牛浴场
来源:互联网 发布:淘宝网天猫女装羽绒服 编辑:程序博客网 时间:2024/05/21 07:53
悬线法模板题,见上文
> `#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;int ans,n,m,z,cnt;struct point{ int x,y;}p[5050];int cmp1(const point &a,const point &b){return a.x<b.x;}int cmp2(const point &a,const point &b){return a.y<b.y;}int main(){ cin>>n>>m>>z;p[0] = (point){0,0}; for (int i = 1;i <= z;i++) scanf("%d%d",&p[i].x,&p[i].y); p[++z] = (point){0,m};p[++z] = (point){n,m}; sort(p+1,p+z+1,cmp1); ans = 0 , cnt = 0; for (int i = 1;i <= z ;i++) cnt = max(cnt , p[i].x-p[i-1].x); ans = cnt * m; sort(p+1,p+z+1,cmp2); for (int i = 1;i < z;i++) { int up=0,down=n; for(int j = i + 1;j <= z;j++) { ans = max(ans,(down - up) * (p[j].y - p[i].y)); if (p[j].x >= p[i].x&&p[j].x < down)down = p[j].x; if (p[j].x < p[i].x&&p[j].x > up)up = p[j].x; } }// cout<<ans<<endl; for (int i = z ;i >= 1;i--) { int up = 0,down = n; for (int j = i-1 ;j > 0 ;j--) { if (p[j].x >= p[i].x&&p[j].x < down)down = p[j].x; if (p[j].x < p[i].x&&p[j].x > up)up = p[j].x;// if (i==3) cout << p[i].y << ' '<< p[j].y<<endl; }// if ((down - up) * p[i].y == 81)cout<<i<<endl; ans = max(ans,(down - up) * (p[i].y)); } cout<<ans;}`
跑的很慢,最慢的点跑了250ms,加以枚举剪枝优化后,最慢跑了30ms,应该也是数据水,感觉缺少了对于矩形左边与左边界重合时的枚举。
#include<cstdio>#include<algorithm>using namespace std;int n,l,w,ans;typedef struct{ int x,y;}P;bool cmp(P a,P b){ if(a.x==b.x) return a.y<b.y; return a.x<b.x;}int main(){ P p[5010]; scanf("%d%d",&l,&w); p[1].x=0;p[1].y=0; p[2].x=l;p[2].y=0; p[3].x=0;p[3].y=w; p[4].x=l;p[4].y=w; scanf("%d",&n); n+=4; for(int i=5;i<=n;i++) scanf("%d%d",&p[i].x,&p[i].y); sort(p+1,p+1+n,cmp); for(int i=1;i<=n;i++) { int u=0,d=w; for(int j=i+1;j<=n;j++) { if(p[j].x==p[i].x || p[j].y>d || p[j].y<u) continue;//很关键的优化 ans=max(ans,(p[j].x-p[i].x)*(d-u)); if(p[j].y>u && p[j].y<=p[i].y)u=p[j].y; if(p[j].y<d && p[j].y>=p[i].y)d=p[j].y; if(u>=d)break; } } printf("%d\n",ans); return 0;}
0 0
- 【WC2002】奶牛浴场
- 【Wc2002】奶牛浴场
- 【WC2002】奶牛浴场
- 洛谷 [P1578] WC2002 奶牛浴场
- [悬线法] COGS 1722 [WC2002]奶牛浴场
- [WC'2002]奶牛浴场
- P1055 奶牛浴场 - Vijos
- vijos p1055奶牛浴场
- Vijos P1055 奶牛浴场
- vijos 1055 奶牛浴场
- vijos 奶牛浴场
- vijos p1005 奶牛浴场[ 极大化思想]
- oldssoj1107奶牛浴场(最大子矩阵)
- [Vijos1055]奶牛浴场(极大子矩形)
- P1578 奶牛浴场(极大化思想)
- 奶牛浴场---悬线法之算法1
- Vijos[1055]奶牛浴场 极大化思想
- vijos 1055 奶牛浴场(最大子矩阵DP)
- Mybatis工作机制源码分析—一次select请求处理流程
- MFC编程 文件对话框(转载 鸡啄米)
- webstorm 2016 激活破解
- R+OCR︱借助tesseract包实现图片文本提取功能
- 在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详细教程
- 【Wc2002】奶牛浴场
- 【oschina】mysql web数据库的设计归范-1命名规范
- HDU 2844 FATE (二维完全背包)
- cassandra 3.x官方文档(6)---内部原理之存储引擎
- 图搜索之基于Python的迪杰斯特拉算法和弗洛伊德算法
- css-display属性辨析
- Bash One-Liners Explained 译文(三)(转载自团子的小窝)
- servlet_04 servlet表单
- 从虚拟机视角谈 Java 应用性能优化