问题 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 ...
随机推荐
- zoj 3742 Delivery 好题
Delivery 题目还是自己看吧 - -! 看似图论,实际上是一个考察思维以及数据结构的题. 我们对于先前和向后的边分别进行统计. 对询问离线. 小边按照左端点从大到小排序. 1.对于向后的边,询问 ...
- BZOJ 1146: [CTSC2008]网络管理Network 树链剖分+线段树+平衡树
1146: [CTSC2008]网络管理Network Time Limit: 50 Sec Memory Limit: 162 MBSubmit: 870 Solved: 299[Submit] ...
- photoSlider-原生js移动开发轮播图、相册滑动插件
详细内容请点击 在线预览 立即下载 使用方法: 分别引用css文件和js文件 如: <link rel="stylesheet" type="text/css& ...
- AJAX一些基本知识点
ajax的定义: 中文意思:异步JavaScript和XML. 指一种创建交互式网页应用的网页开发技术. ajax的核心是XMLHttpRequest,在页面中由XMLHTTPRequest来发出Ht ...
- JavaScript之六种排序法
1.冒泡排序循环的最大值从length递减每次循环只能排好最后一个,然后递减到第一个 function bubbleSort(){ var changedData = new Array(); var ...
- Javascript之拖拽库
在手机上运行触屏拖动时,我发现页面并没有反应,服务器端执行javascript在手机端与电脑端不能“相同式”实现(电脑端运行正常,而手机端不一样),这是为甚么呢? 首先,我们都知道javascript ...
- C#中Messagebox.Show()常用参数用法详解
声明:IWin32Window owner , HelpNavigator navigator , string keyword 上面的三个参数类型不是很了解.没有做讨论. 等以后了解多了 ...
- Mysql中查找并删除重复数据的方法
(一)单个字段 1.查找表中多余的重复记录,根据(question_title)字段来判断 代码如下 复制代码 select * from questions where question_title ...
- 以莫泰的形式进行页面转换(传值用block)
1.在第一个页面进入第二个页面可以使用莫泰的方式 在第一个页面包含第二个页面的头文件#import "FirstViewController.h"#import "Vie ...
- jquery动态移除/增加onclick属性详解
本文章给大家介绍利用jquery的removeAttr与attr事件来给a标签增加与删除onclick事件的具体操作方法,有需要了解的朋友可参考. 要实现效果:点击链接先去掉onclick属性,3秒 ...