问题 K: 【USACO2012Feb】植草 {Bronze题2}
按着矩形周长的思路,到当前边的时候,前一层的覆盖数乘以高度加入 ans 就行,然而真正的算法可能并不是这个。。只能想到这个了
const maxe=;
type
node=record
l,r,mid,sum,delta:longint;
end;
arr=array[..] of longint;
var i,j,n,bs,x1,y1,x2,y2,b1,b2,l,r,ans,_sum,v:longint;
bx:array[..maxe] of arr;
tree:array[..*maxe] of node;
procedure qsx(t,w:longint);
var mid1,mid2,l,r:longint;
tem:arr;
begin
l:=t; r:=w; mid1:=bx[(l+r) shr ,]; mid2:=bx[(l+r) shr ,];
//writeln(l,' ',r);
repeat
begin
while (bx[l,]<mid1) or ((bx[l,]=mid1) and (bx[l,]>mid2)) do inc(l);
while (bx[r,]>mid1) or ((bx[r,]=mid1) and (bx[r,]<mid2)) do dec(r);
if l<=r then
begin
tem:=bx[l];
bx[l]:=bx[r];
bx[r]:=tem;
inc(l); dec(r);
end;
end;
until l>r;
if t<r then qsx(t,r);
if l<w then qsx(l,w);
end;
procedure build(o,l,r:longint);
begin
tree[o].l:=l; tree[o].r:=r; tree[o].mid:=(l+r) shr ;
tree[o].delta:=; tree[o].sum:=;
if l<>r then
begin
build(o*,l,tree[o].mid);
build(o*+,tree[o].mid+,r);
end;
end;
procedure maintain(o:longint);
begin
tree[o].sum:=;
if tree[o].l<tree[o].r then tree[o].sum:=tree[*o].sum+tree[*o+].sum;
if tree[o].delta> then tree[o].sum:=tree[o].r-tree[o].l+;
end;
procedure update(o:longint);
begin
if (l<=tree[o].l) and (tree[o].r<=r) then inc(tree[o].delta,v)
else begin
if l<=tree[o].mid then update(*o);
if r>tree[o].mid then update(*o+);
end;
maintain(o);
end;
begin
readln(n); bs:=*n;
for i:= to n do
begin
readln(x1,y2,x2,y1);
inc(x1,); inc(x2,);
inc(y1,); inc(y2,);
b1:=*i-; b2:=*i; //writeln(y1,' ',y2);
bx[b1,]:=; bx[b1,]:=x1; bx[b1,]:=x2; bx[b1,]:=y1;
bx[b2,]:=-;bx[b2,]:=x1; bx[b2,]:=x2; bx[b2,]:=y2;
end;
qsx(,bs); ans:=;
build(,,);
for i:= to bs do
begin
l:=bx[i,]; r:=bx[i,]-; v:=bx[i,];
update();
inc(ans,_sum*(bx[i,]-bx[i-,]));
_sum:=tree[].sum;
end;
writeln(ans);
end.
(转载请注明出处:http://www.cnblogs.com/Kalenda/)
问题 K: 【USACO2012Feb】植草 {Bronze题2}的更多相关文章
- HDU 5122 K.Bro Sorting(模拟——思维题详解)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5122 Problem Description Matt's friend K.Bro is an A ...
- POJ 2104 求序列里第K大 主席树裸题
给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么 只有询问,没有修改 可以用归并树和划分树(我都没学过..囧) 我是专门冲着弄主席树来的 对主席树的建树方式有点了解了,不过这题为 ...
- 蓝桥杯 算法训练 区间k大数查询(水题)
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...
- leetcode 395. Longest Substring with At Least K Repeating Characters(高质量题)
只能说还是太菜,抄的网上大神的做法: idea: mask 的每一位代表该位字母够不够k次,够k次为0,不够为1 对于每一位将其视为起点,遍历至末尾,找到其最大满足子串T的下标max_idx,之后从m ...
- HPU第四次积分赛-K :方框(水题,打印图形)
方框 描述 用'*'打印出一个nxn的字符图形(1<=n<=100). 输入 多组输入.每行输入一个n,输入EOF结束文件. 输出 输出一个满足题意的图形. 输入样例 1 1 2 5 6 ...
- POJ-2104-K-th Number(区间第K大+主席树模板题)
Description You are working for Macrohard company in data structures department. After failing your ...
- USACO翻译:USACO 2012 JAN三题(3)
USACO 2012JAN(题目三) 一.题目概览 中文题目名称 放牧 登山 奶牛排队 英文题目名称 grazing climb lineup 可执行文件名 grazing climb lineup ...
- USACO翻译:USACO 2012 JAN三题(2)
USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛联盟 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking bale ...
- USACO翻译:USACO 2012 JAN三题(1)
USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...
随机推荐
- 转: HHVM at Baidu
评注: 一个项目迁移的问题考虑与实现使用.非常之详细. 转:http://lamp.baidu.com/2014/11/04/hhvm-in-baidu/ 在这之前我们介绍了我们为什么要迁移PHP到H ...
- AspNetPager学习使用1
今天开始研究使用AspNetPager 首先贴上下载链接:http://www.webdiyer.com/aspnetpager/downloads/ 在下载链接中,作者已经提供了使用方法.在这里,本 ...
- Linux下设置定期执行脚本
下面针对的是非ubuntu环境,会在文章末尾介绍ubuntu的一些区别. 在Linux下,经常需要定期的执行一些脚本从而来实现一些功能. 在Linux下我们用crontab来实现定期的执行脚本这个功能 ...
- 跟我一起学习ASP.NET 4.5 MVC4.0(一)(转)
由于上面一个项目使用的是ASP.NET4.0 MVC3.0,在招人的时候发现很多人有听说过MVC,但是却是没用过,对MVC也只是一知半解,最近想给团队成员做一个系统的解说,让大家都可以学习一下ASP. ...
- LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg
LINQ to SQL 语句(3) 之 Count/Sum/Min/Max/Avg [1] Count/Sum 讲解 [2] Min 讲解 [3] Max 讲解 [4] Average 和 Agg ...
- Android平台下OpenGL初步
Android OpenGL ES 开发教程 从入门到精通 http://blog.csdn.net/zhoudailiang/article/details/50176143 http://blog ...
- [Fiddler]Unable to Generate Certificate
I'm using Fiddler2 (or trying) to capture SSL traffic for a windows desktop gadget hitting an https ...
- Chrome JS内存泄漏排查方法(Chrome Profiles)
原文网址:http://blog.csdn.net/kaitiren/article/details/19974269 JS内存泄漏排查方法(Chrome Profiles) Google Ch ...
- ubuntu 12.04 安装 codeblock 12.11
原文地址:http://qtlinux.blog.51cto.com/3052744/1136779 参考文章:http://blog.csdn.net/dszsy1990/article/det ...
- c#与java之比较(转自Jack.Wang's home)
很多人说C#是微软用来和Java抗衡的武器,因为二者在很大程度上有着惊人的相似 ,尽管如此,两者不同的地方也很多,所谓“于细微处见差异”.那么两者的相似和区 别都在什么地方呢?我们从今天开始,会从各个 ...