vijos1055 奶牛浴场
挺好的一道题呢
O(n^2)或者O(wh)
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<algorithm>
- #include<iostream>
- using namespace std;
- void setIO(const string& s) {
- freopen((s + ".in").c_str(), "r", stdin);
- freopen((s + ".out").c_str(), "w", stdout);
- }
- template<typename Q> Q read(Q& x) {
- static char c, f;
- for(f = ; c = getchar(), !isdigit(c); ) if(c == '-') f = ;
- for(x = ; isdigit(c); c = getchar()) x = x * + c - '';
- return f && (x = -x), x;
- }
- template<typename Q> Q read() {
- static Q x; return read(x);
- }
- const int N = + ;
- struct Node {
- int x, y;
- Node(int x = , int y = ) : x(x), y(y) {}
- }p[N];
- bool cmpx(const Node& lhs, const Node& rhs) {
- return lhs.x < rhs.x;
- }
- bool cmpy(const Node& lhs, const Node& rhs) {
- return lhs.y < rhs.y;
- }
- int L, H, n;
- int calc() {
- int ans = ;
- for(int i = ; i < n; i++) {
- int U = H, D = ;
- for(int j = i + ; j < n; j++) {
- ans = max(ans, (p[j].x - p[i].x) * (U - D));
- if(D <= p[j].y && p[j].y <= U) {
- if(p[j].y > p[i].y) U = p[j].y;
- else D = p[j].y;
- }
- if(U == D) break;
- }
- }
- return ans;
- }
- int main() {
- #ifdef DEBUG
- freopen("in.txt", "r", stdin);
- freopen("out.txt", "w", stdout);
- #endif
- read(H), read(L), read(n);
- for(int i = ; i < n; i++) {
- int x = read<int>(), y = read<int>();
- p[i] = Node(x, y);
- }
- p[n++] = Node(, );
- p[n++] = Node(, H);
- p[n++] = Node(L, );
- p[n++] = Node(L, H);
- int ans = ;
- sort(p, p + n, cmpy);
- for(int i = ; i < n; i++) {
- ans = max(ans, (p[i].y - p[i-].y) * L);
- }
- sort(p, p + n, cmpx);
- ans = max(ans, calc());
- for(int i = ; i < n; i++) p[i].x *= -;
- reverse(p, p + n);
- printf("%d\n", max(ans, calc()));
- return ;
- }
vijos1055 奶牛浴场的更多相关文章
- Vijos1055 奶牛浴场(极大化思想求最大子矩形)
思路详见 王知昆<浅谈用极大化思想解决最大子矩形问题> 写得很详细(感谢~....) 因为不太会用递推,所以用了第一种方法,时间复杂度是O(n^2),n为枚举的点数,对付这题绰绰有余 思路 ...
- P1578 奶牛浴场
P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ...
- 洛谷P1578 奶牛浴场
P1578 奶牛浴场 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每头奶牛都必 ...
- 洛谷1578:[WC2002]奶牛浴场——题解
https://www.luogu.org/problemnew/show/P1578#sub 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建 ...
- [WC2002][洛谷P1578]奶牛浴场
洛谷题解里那个人可真是话多呢. 题目描述 由于John建造了牛场围栏,激起了奶牛的愤怒,奶牛的产奶量急剧减少.为了讨好奶牛,John决定在牛场中建造一个大型浴场.但是John的奶牛有一个奇怪的习惯,每 ...
- Vijos 1055 奶牛浴场
Description 求一个不覆盖指定点的最大子矩阵,\(n,m \leqslant 3\times 10^5,S \leqslant 5\times 10^3\) . Sol 没有名字的算法都叫x ...
- vijos P1055奶牛浴场&& Winter Camp2002
这道题是我在寒假的模拟赛里碰到的,现在想起来仍觉得余味无穷.题目大意大致如下:给你一个矩形并在其中划出一个最大的子矩形,当然,在这个矩形里有些地方是取不到的,也就是说我们划的这个子矩形不能包含这些点( ...
- 洛谷 [P1578] WC2002 奶牛浴场
本题是一道用极大化思想求最大子矩阵的经典题目.这个题目很出名,可以在百度搜索王知昆国家队dalao的论文,其中说的非常详细. 先枚举极大子矩形的左边界,然后从左到右依次扫描每一个障碍点,并不断修改可行 ...
- luogu P1578 奶牛浴场
很好的一道题 王知昆爷爷的论文(讲的特别清楚) https://wenku.baidu.com/view/bc8311f69e314332396893f7.html 先贴上AC代码 #include& ...
随机推荐
- [Lua]索引极致,form.lua
local form = {_tag = 'form'} function form.build(tag, super) local target = { _tag = tag, _super = s ...
- jquery 效果
效果1.基本效果 1.1 show([speed,[easing],[fn]]) 如果元素本身是可见的,则不对其作任何改变.如果元素是隐藏的,则使其可见. $("p&qu ...
- Hibernate 使用说明
Eclipse中hibernate连接mySQL数据库练习(采用的是hibernate中XML配置方式连接数据库,以后在更新其他方式的连接) Hibernate就是Java后台数据库持久层的框架,也是 ...
- 微信菜单开发:使用PHP数组来定义微信菜单
目前使用数组的方式来定义,然后在通过json_encode函数来转JSON $menuJson=array(); $menuJson['button'][]=array('name'=>urle ...
- JS+CSS实现选项卡功能
[小小一记] 首先我们写一个选项卡的结构出来,包括tab和content: 首先是tab: <ul class="ttitle-box-tabs" id="tabs ...
- ASP.NET MVC 学习
项目结构
- 关于mysql授权账号权限时的空密码问题
-root ~]$ mysql -uroot -p Enter password:ERROR 1045 (28000): Access denied for user ‘root’@'localhos ...
- poj 3667 Hotel
昨天学习了线段树的延迟标记: 发现自己还有区间合并没有学: 抓紧时间学习一下: 代码: #include<cstdio> #include<algorithm> #define ...
- jquery deferred
http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html http:// ...
- python作用域 scope
可以先看:http://www.cnblogs.com/youxin/p/3645734.html 几个概念:python能够改变变量作用域的代码段是def.class.lamda.if/elif/e ...