极大化思想——洛谷 P1578 奶牛浴场
2017-06-29 11:18
465 查看
https://www.luogu.org/problem/show?pid=1578
论文
https://wenku.baidu.com/view/728cd5126edb6f1aff001fbb.html
论文里面唯一的错误就是第一个算法需要添加的点不仅仅是左下右上,4个顶角都要的;
为什么自己模拟就知道了;
论文
https://wenku.baidu.com/view/728cd5126edb6f1aff001fbb.html
论文里面唯一的错误就是第一个算法需要添加的点不仅仅是左下右上,4个顶角都要的;
为什么自己模拟就知道了;
#include<bits/stdc++.h> #define Ll long long using namespace std; const int N=5e3+5; struct cs{int x,y;}d ; int n,m,t,ans; bool cmp1(cs a,cs b){return a.y<b.y;} bool cmp2(cs a,cs b){return a.x<b.x;} bool cmp3(cs a,cs b){return a.y>b.y;} void work(){ for(int i=1;i<=t;i++){ int ma=n,mi=0; for(int j=i+1;j<=t;j++){ if(d[j].x>ma||d[j].x<mi)continue; ans=max(ans,abs(d[i].y-d[j].y)*(ma-mi)); if(d[j].x<d[i].x)mi=d[j].x;else ma=d[j].x; if(ma==mi)break; } } } int main() { scanf("%d%d%d",&n,&m,&t); for(int i=1;i<=t;i++)scanf("%d%d",&d[i].x,&d[i].y); d[++t].x=0;d[t].y=0;d[++t].x=n;d[t].y=m; d[++t].x=0;d[t].y=m;d[++t].x=n;d[t].y=0; sort(d+1,d+t+1,cmp2); for(int i=2;i<=t;i++)ans=max(ans,m*(d[i].x-d[i-1].x)); sort(d+1,d+t+1,cmp1);work(); sort(d+1,d+t+1,cmp3);work(); printf("%d",ans); }
相关文章推荐
- Vijos[1055]奶牛浴场 极大化思想
- 洛谷P1578 奶牛浴场
- vijos p1005 奶牛浴场[ 极大化思想]
- 洛谷 [P1578] WC2002 奶牛浴场
- P1578 奶牛浴场
- [Vijos1055]奶牛浴场(极大子矩形)
- Vijos1055 奶牛浴场(极大化思想求最大子矩形)
- 【WC2002】奶牛浴场
- 【WC 2002】奶牛浴场
- 洛谷 P2858 奶牛零食
- 洛谷 1578 奶牛沐场 最大子矩阵 解题报告
- 洛谷 3093 奶牛调度
- oldssoj1107奶牛浴场(最大子矩阵)
- (洛谷 1824)进击的奶牛
- Vijos 1055 奶牛浴场 最大子矩阵 算♂法①
- dp——洛谷 P1472 奶牛家谱 Cow Pedigrees
- 洛谷 P2986 [USACO10MAR]伟大的奶牛聚集
- 洛谷 P1472 奶牛家谱 Cow Pedigrees
- 动归————奶牛浴场
- 洛谷 P2345 奶牛集会