博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷1578:[WC2002]奶牛浴场——题解
阅读量:6196 次
发布时间:2019-06-21

本文共 1312 字,大约阅读时间需要 4 分钟。

由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少。为了讨好奶牛,John决定在牛场中建造一个大型浴场。但是John的奶牛有一个奇怪的习惯,每头奶牛都必须在牛场中的一个固定的位置产奶,而奶牛显然不能在浴场中产奶,于是,John希望所建造的浴场不覆盖这些产奶点。这回,他又要求助于Clevow了。你还能帮助Clevow吗?

John的牛场和规划的浴场都是矩形。浴场要完全位于牛场之内,并且浴场的轮廓要与牛场的轮廓平行或者重合。浴场不能覆盖任何产奶点,但是产奶点可以位于浴场的轮廓上。

Clevow当然希望浴场的面积尽可能大了,所以你的任务就是帮她计算浴场的最大面积。

(其实并不知道是不是WC2002的题目emm)

请食用王知昆论文:,和洛谷第一篇题解。

这里使用的是算法1(并不知道什么名字,枚举法?)

然而那篇题解虽然指出了很多bug的所在以及解决方法,但是代码变量名(自我感觉)很不友好。

我觉得我的代码还是很清真emm。

#include
#include
#include
#include
#include
#include
using namespace std;const int N=2002;inline int read(){ int x;scanf("%d",&x);return x;}struct node{ int x,y;}a[5010];bool cmp1(node a,node b){ return a.x
a[i].y)r=min(r,a[j].y); else l=max(l,a[j].y); } } l=0,r=m,v=a[i].x; for(int j=i-1;j>=1;j--){ if(l<=a[j].y&&a[j].y<=r){ if(v*(r-l)<=ans)break; ans=max(ans,(a[j].x-a[i].x)*(r-l)); if(a[i].y==a[j].y)break; if(a[j].y>a[i].y)r=min(r,a[j].y); else l=max(l,a[j].y); } } } sort(a+1,a+s+1,cmp2); for(int i=1;i<=s-1;i++)ans=max(ans,(a[i+1].y-a[i].y)*n); printf("%d\n",ans); return 0;}

+++++++++++++++++++++++++++++++++++++++++++

 +本文作者:luyouqi233。               +

 +欢迎访问我的博客:+

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/8516388.html

你可能感兴趣的文章
51nod 1831 小C的游戏(博弈论+打表)
查看>>
51nod挑的部分5级题
查看>>
操作系统原理3——多道程序
查看>>
一次大量TIME_WAIT和Recv-Q 堵塞问题排查思路
查看>>
Qt项目时隔数月再次打开竟出现bug
查看>>
Java反射
查看>>
C语言数据转换
查看>>
3.Contructor(构造器)模式—精读《JavaScript 设计模式》Addy Osmani著
查看>>
1050 String Subtraction
查看>>
用Redis实现分布式锁 与 实现任务队列
查看>>
1191: [HNOI2006]超级英雄Hero
查看>>
转 Python执行系统命令的方法
查看>>
前端面试每日 3+1 —— 第66天
查看>>
<HTTP权威指南>记录 ---- URL与资源
查看>>
vuejs键盘事件不生效解决方式
查看>>
两种加密方式在Python中的使用
查看>>
java程序员如何编写更好的单元测试?
查看>>
什么是JSON ?
查看>>
第九周项目1-利用循环求和
查看>>
第二十四周项目6-点和距离
查看>>