https://www.luogu.org/problemnew/show/P1578

题解

另外这题有一些小坑,洛谷的题解里面有讲

  1. #pragma GCC optimize("Ofast")
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cstring>
  5. #include<vector>
  6. using namespace std;
  7. #define fi first
  8. #define se second
  9. #define mp make_pair
  10. #define pb push_back
  11. typedef long long ll;
  12. typedef unsigned long long ull;
  13. struct pii
  14. {
  15. int fi,se;
  16. };
  17. bool operator<(const pii &a,const pii &b)
  18. {
  19. return a.fi<b.fi;
  20. }
  21. int L,W,n;
  22. pii p[];
  23. bool c1(const pii &a,const pii &b)
  24. {
  25. return a.se<b.se;
  26. }
  27. int ans;
  28. int main()
  29. {
  30. int i,j,t1,t2,t;
  31. scanf("%d%d%d",&L,&W,&n);
  32. for(i=;i<=n;++i)
  33. {
  34. scanf("%d%d",&p[i].fi,&p[i].se);
  35. }
  36. p[++n].fi=;p[n].se=;
  37. p[++n].fi=L;p[n].se=W;
  38. p[++n].fi=;p[n].se=W;
  39. p[++n].fi=L;p[n].se=;
  40. sort(p+,p+n+,c1);
  41. for(i=;i<=n;++i)
  42. {
  43. t1=;t2=L;
  44. //printf("1t%d %d %d\n",i,p[i].fi,p[i].se);
  45. for(j=i+;j<=n&&p[j].se==p[i].se;++j);
  46. for(;j<=n;)
  47. {
  48. ans=max(ans,(t2-t1)*(p[j].se-p[i].se));
  49. //printf("at%d %d %d %d\n",t2,t1,p[j].se,p[i].se);
  50. t=p[j].se;
  51. while(j<=n&&p[j].se==t)
  52. {
  53. //t1=max(t1,p[j].fi);
  54. //t2=min(t2,p[j].fi);
  55. if(p[j].fi>p[i].fi) t2=min(t2,p[j].fi);
  56. else t1=max(t1,p[j].fi);
  57. ++j;
  58. }
  59. //printf("2t%d %d %d %d\n",i,j,t1,t2);
  60. }
  61. }
  62. for(i=n;i>=;--i)
  63. {
  64. t1=;t2=L;
  65. for(j=i-;j>=&&p[j].se==p[i].se;--j);
  66. for(;j>=;)
  67. {
  68. ans=max(ans,(t2-t1)*(p[j].se-p[i].se));
  69. //printf("bt%d %d %d %d\n",t2,t1,p[j].se,p[i].se);
  70. t=p[j].se;
  71. while(j>=&&p[j].se==t)
  72. {
  73. if(p[j].fi>p[i].fi) t2=min(t2,p[j].fi);
  74. else t1=max(t1,p[j].fi);
  75. --j;
  76. }
  77. }
  78. }
  79. sort(p+,p+n+);
  80. for(i=;i<=n;++i)
  81. ans=max(ans,W*(p[i].fi-p[i-].fi));
  82. printf("%d",ans);
  83. return ;
  84. }

洛谷 P1578 奶牛浴场的更多相关文章

  1. 洛谷P1578 奶牛浴场

    P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ...

  2. [WC2002][洛谷P1578]奶牛浴场

    洛谷题解里那个人可真是话多呢. 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每 ...

  3. 洛谷 P1578 奶牛浴场 —— 最大子矩形

    题目:https://www.luogu.org/problemnew/show/P1578 枚举左边界,向右枚举右边界,同时不断限制上下边界,最后右边界是整个图的边界: 由于没有做左边界是整个图的边 ...

  4. 洛谷 P1578 奶牛浴场 题解

    题面 1.定义有效子矩形为内部不包含任何障碍点且边界与坐标轴平行的子矩形.如图所示,第一个是有效子矩形(尽管边界上有障碍点),第二个不是有效子矩形(因为内部含有障碍点). 2.极大有效子矩形:一个有效 ...

  5. 洛谷P1578 奶牛牧场(悬线法思想)

    题目 悬线法的思想--即扫描线的思想,每个矩阵必定是由两个障碍来构成左右边界或者上下边界. 如果此两个障碍组成了左右边界,枚举这两个障碍中途更新这两个障碍之间的矩阵上下边界,并且更新最大值. 考虑如何 ...

  6. 洛谷2344 奶牛抗议(DP+BIT+离散化)

    洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ...

  7. P1578 奶牛浴场

    P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ...

  8. 洛谷P2402 奶牛隐藏

    洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ...

  9. 洛谷P2402 奶牛隐藏(网络流,二分答案,Floyd)

    洛谷题目传送门 了解网络流和dinic算法请点这里(感谢SYCstudio) 题目 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛 ...

随机推荐

  1. 如何配置DSI时钟频率

    [DESCRIPTION] 计算DSI数据速率的方式,以及如何配置时钟clk的方式 [KEYWORD] dsi.data rate.mipi clk [SOLUTION] 1.DSI vdo mode ...

  2. HDU2512 一卡通大冒险 —— 第二类斯特林数

    题目链接:https://vjudge.net/problem/HDU-2512 一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others)    Memory Lim ...

  3. jmeter使用笔记——脚本录制,JMeter使用plugins插件进行服务器性能监控

    脚本录制: 1.badboy录制 2.代理服务器录制 ①工作台添加HTTP代理服务器 ②设置目标控制器,分组,排除模式,包含模式(使用正则表达式筛选) ③设置浏览器,手动设置代理服务器,localho ...

  4. jmeter中的响应断言

    断言就类似LoadRunner中的检查点.对上一个请求返回的信息,做字符串.数据包大小.HTML.XML.图片等做判断,确保返回的信息的准确性. jmeter的断言有好多,下面是一个响应断言 新建一个 ...

  5. 乐曲主题Musical Themes

    SA例题 题面 对于串 \(S\) 的两个子串 \(A\) 和 \(B\) ,满足 \(k = |A| = |B|\),\(\exists c \forall i\, a_i + c=b_i\),且 ...

  6. 【整理】XOR:从陌生到头晕

    一:解决XOR常用的方法: 在vjudge上面输入关键词xor,然后按照顺序刷了一些题. 然后大概悟出了一些的的套路: 常用的有贪心,主要是利用二进制的一些性质,即贪心最大值的尽量高位取1. 然后有前 ...

  7. python 文件与文件夹常见操作以及os.walk的用法

    文件操作: In [34]: import os In [35]: os.rename("hello[复件].py","hello111.py")       ...

  8. codevs 1046 旅行家的预算

    传送门 1046 旅行家的预算 1999年NOIP全国联赛普及组NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold题解   题目描述 Des ...

  9. POJ2823(优先队列)

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 50738   Accepted: 14590 ...

  10. 2.对《30个提高Web程序执行效率的好经验》的理解

    摘自:http://www.cnblogs.com/powertoolsteam/archive/2010/07/12/1775933.html 文章中执行代码的消耗时间是怎么计算的,有知道的同学可以 ...