青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

#include? < iostream >
#include?
< algorithm >

using ? namespace ?std;

#define ?N?211

struct ?Tree {
????
double ?length;
????
int ????cnt;
????Tree()
{?length = ? 0 ;?cnt = ? 0 ;?}
????
void ?init() {?length = ? 0 ;?cnt = ? 0 ;?}
}
tb[ 1610 ];

double ?x1[N],?y1[N],?x2[N],?y2[N],?xx[N],?idx[N];
int ?pos,?n;

struct ?Line {
????
double ?y,?x1,?x2;
????
bool ?type;
}
line[N];

bool ? operator < (?Line? const & ?a,?Line? const & ?b?) {
????
return ?a.y < ?b.y;?}

????
inline?
int ?bsearch(? double ?value?) {
????
int ?low = ? 1 ,?high = ?pos + ? 1 ,?mid;
????
while (?low <= ?high?) {
????????mid
= ?(low + ?high) >> ? 1 ;
????????
if (?idx[mid] > ?value?)?high = ?mid - ? 1 ;
????????
else ? if (?idx[mid] < ?value?)?low = ?mid + ? 1 ;
????????
else ? return ?mid;
????}

}


void ?insert(? int ?rt,? int ?l,? int ?r,? int ?a,? int ?b?) {
????
if (?l == ?a? && ?r == ?b?) {
????????tb[rt].length
= ?idx[r] - ?idx[l];
????????tb[rt].cnt
++ ;? return ;?}

????
????
if (?tb[rt].cnt != ? 0 ?) {
????????tb[rt
<< 1 ].cnt += ?tb[rt].cnt;?tb[(rt << 1 ) + 1 ].cnt += ?tb[rt].cnt;
????????tb[rt].cnt
= ? 0 ;
????}

????
????
int ?mid = ?(l + ?r) >> ? 1 ;
????
if (?b <= ?mid?)?insert(?rt << ? 1 ,?l,?mid,?a,?b?);
????
else ? if (?a >= ?mid?)?insert(?(rt << 1 ) + ? 1 ,?mid,?r,?a,?b?);
????
else {
????????insert(?rt
<< ? 1 ,?l,?mid,?a,?mid?);
????????insert(?(rt
<< 1 ) + ? 1 ,?mid,?r,?mid,?b?);?}

????
????
if (?tb[rt].cnt > ? 0 ?)?tb[rt].length = ?idx[r] - ?idx[l];
????
else ?tb[rt].length = ?tb[rt << 1 ].length + ?tb[(rt << 1 ) + 1 ].length;
}


void ?del(? int ?rt,? int ?l,? int ?r,? int ?a,? int ?b?) {
????
if (?l == ?a? && ?r == ?b?) {
????????tb[rt].cnt
-- ;?? return ;
????}

????
????
if (?tb[rt].cnt != ? 0 ?) {
????????tb[rt
<< 1 ].cnt += ?tb[rt].cnt;?tb[(rt << 1 ) + 1 ].cnt += ?tb[rt].cnt;
????????tb[rt].cnt
= ? 0 ;
????}

????????
????
int ?mid = ?(l + ?r) >> ? 1 ;
????
if (?b <= ?mid?)?del(?rt << ? 1 ,?l,?mid,?a,?b?);
????
else ? if (?a >= ?mid?)?del(?(rt << 1 ) + ? 1 ,?mid,?r,?a,?b?);
????
else {
????????del(?rt
<< ? 1 ,?l,?mid,?a,?mid?);
????????del(?(rt
<< 1 ) + ? 1 ,?mid,?r,?mid,?b?);????
????}

}


void ?query(? int ?rt,? int ?l,? int ?r?) {
????
if (?l + ? 1 == ?r?) {
????????
if (?tb[rt].cnt > ? 0 ?)?tb[rt].length = ?idx[r] - ?idx[l];
????????
else ?tb[rt].length = ? 0 ;
????????
return ;?}

????
????
if (?tb[rt].cnt != ? 0 ?) {
????????tb[rt
<< 1 ].cnt += ?tb[rt].cnt;?tb[(rt << 1 ) + 1 ].cnt += ?tb[rt].cnt;
????????tb[rt].cnt
= ? 0 ;
????}

????
????
int ?mid = ?(?l + ?r?) >> ? 1 ;
????query(?rt
<< 1 ,?l,?mid?);
????query(?(rt
<< 1 ) + ? 1 ,?mid,?r?);
????
????tb[rt].length
= ?tb[rt << 1 ].length + ?tb[(rt << 1 ) + 1 ].length;
}


int ?main() {
????
int ?test = ? 1 ;
????
while (?scanf( " %d " , & n),?n != ? 0 ?) {
????????
for (? int ?i = ? 0 ;?i <= ? 1600 ;? ++ i?)?tb[i].init();
????????
????????
for (? int ?i = ? 0 ;?i < ?n;? ++ i?)? {
????????????scanf(
" %lf%lf%lf%lf " ,?x1 + ?i,?y1 + ?i,?x2 + ?i,?y2 + ?i?);
????????????line[
2 * i].y = ?y1[i];???line[ 2 * i].x1 = ?x1[i];?
????????????line[
2 * i].x2 = ?x2[i];??line[ 2 * i].type = ? 0 ;
????????????
????????????xx[
2 * i] = ?x1[i];?xx[ 2 * i + ? 1 ] = ?x2[i];
????????????line[
2 * i + 1 ].y = ?y2[i];??line[ 2 * i + 1 ].x1 = ?x1[i];
????????????line[
2 * i + 1 ].x2 = ?x2[i];?line[ 2 * i + 1 ].type = ? 1 ;
????????}

????????sort(?xx,?xx
+ ? 2 * ?n?);
????????sort(?line,?line
+ ? 2 * ?n?);
????????
????????pos
= ? 1 ;?idx[ 1 ] = ?xx[ 0 ];
????????
for (? int ?i = ? 1 ;?i < ? 2 * ?n;? ++ i?)
????????
if (?xx[i] != ?xx[i - 1 ]?)?idx[ ++ pos] = ?xx[i];
????????
????????
double ?ans = ? 0 ;
????????
for (? int ?i = ? 0 ;?i < ? 2 * ?n - ? 1 ;? ++ i?) {
????????????
int ?u = ?bsearch(?line[i].x1?),?v = ?bsearch(?line[i].x2?);
????????????
????????????
if (?line[i].type == ? 0 ?)?insert(? 1 ,? 1 ,?pos,?u,?v?);
????????????
else ?del(? 1 ,? 1 ,?pos,?u,?v?);
????????????
????????????query(?
1 ,? 1 ,?pos?);
????????????ans
+= ?tb[ 1 ].length * ?(?line[i + 1 ].y - ?line[i].y?);
????????}

????????
????????printf(
" Test?case?#%d\n " ,?test ++ ?);
????????printf(
" Total?explored?area:?%.2lf\n\n " ,?ans?);
????}

????
????
return ? 0 ;
}






#include? < iostream >
#include?
< algorithm >

using ? namespace ?std;

#define ?N?211

struct ?Tree{
????
double ?length;
????
int ????cnt;
????Tree(){?length
= ? 0 ;?cnt = ? 0 ;?}
????
void ?init(){?length = ? 0 ;?cnt = ? 0 ;?}
}tb[
810 ];

double ?x1[N],?y1[N],?x2[N],?y2[N],?xx[N],?idx[N];
int ?pos,?n;

struct ?Line{
????
double ?y,?x1,?x2;
????
bool ?type;
}line[N];

bool ? operator < (?Line? const & ?a,?Line? const & ?b?){
????
return ?a.y < ?b.y;?}
????
inline?
int ?bsearch(? double ?value?){
????
int ?low = ? 1 ,?high = ?pos + ? 1 ;
????
while (?low <= ?high?){
????????
int ?mid = ?(low + ?high) >> ? 1 ;
????????
if (?idx[mid] > ?value?)?high = ?mid - ? 1 ;
????????
else ? if (?idx[mid] < ?value?)?low = ?mid + ? 1 ;
????????
else ? return ?mid;?}
}

inline?
void ?update(? int ?rt,? int ?l,? int ?r?){
????
if (?tb[rt].cnt > ? 0 ?)?tb[rt].length = ?idx[r] - ?idx[l];
????
else ? if (?l + ? 1 == ?r?)?tb[rt].length = ? 0 ;
????
else ?tb[rt].length = ?tb[rt << 1 ].length + ?tb[(rt << 1 ) + 1 ].length;
}

void ?deal(? int ?rt,? int ?l,? int ?r,? int ?a,? int ?b,? int ?t?){
????
if (?a <= ?l? && ?b >= ?r?){
????????tb[rt].cnt
+= ?t;?update(?rt,?l,?r?);? return ;?}
????
int ?mid = ?(l + ?r) >> ? 1 ;
????
if (?a < ?mid?)?deal(?rt << ? 1 ,?l,?mid,?a,?b,?t?);
????
if (?b > ?mid?)?deal(?(rt << 1 ) + ? 1 ,?mid,?r,?a,?b,?t?);
????update(?rt,?l,?r?);
}

int ?main(){
????
int ?test = ? 1 ;
????
while (?scanf( " %d " , & n),?n != ? 0 ?){
????????
for (? int ?i = ? 0 ;?i <= ? 800 ;? ++ i?)?tb[i].init();
????????
for (? int ?i = ? 0 ;?i < ?n;? ++ i?)?{
????????????scanf(
" %lf%lf%lf%lf " ,?x1 + ?i,?y1 + ?i,?x2 + ?i,?y2 + ?i?);
????????????line[
2 * i].y = ?y1[i];???line[ 2 * i].x1 = ?x1[i];?
????????????line[
2 * i].x2 = ?x2[i];??line[ 2 * i].type = ? 0 ;
????????????
????????????xx[
2 * i] = ?x1[i];?xx[ 2 * i + ? 1 ] = ?x2[i];
????????????line[
2 * i + 1 ].y = ?y2[i];??line[ 2 * i + 1 ].x1 = ?x1[i];
????????????line[
2 * i + 1 ].x2 = ?x2[i];?line[ 2 * i + 1 ].type = ? 1 ;
????????}
????????sort(?xx,?xx
+ ? 2 * ?n?);????sort(?line,?line + ? 2 * ?n?);
????????pos
= ? 1 ;?idx[ 1 ] = ?xx[ 0 ];
????????
for (? int ?i = ? 1 ;?i < ? 2 * ?n;? ++ i?)
????????
if (?xx[i] != ?xx[i - 1 ]?)?idx[ ++ pos] = ?xx[i];
????????
????????
double ?ans = ? 0 ;
????????
for (? int ?i = ? 0 ;?i < ? 2 * ?n - ? 1 ;? ++ i?){
????????????
int ?u = ?bsearch(?line[i].x1?),?v = ?bsearch(?line[i].x2?);
????????????
if (?line[i].type == ? 0 ?)?deal(? 1 ,? 1 ,?pos,?u,?v,? 1 ?);
????????????
else ?deal(? 1 ,? 1 ,?pos,?u,?v,? - 1 ?);
????????????
????????????ans
+= ?tb[ 1 ].length * ?(?line[i + 1 ].y - ?line[i].y?);
????????}
????????printf(
" Test?case?#%d\n " ,?test ++ ?);
????????printf(
" Total?explored?area:?%.2lf\n\n " ,?ans?);
????}
????
????
return ? 0 ;
}
posted on 2009-08-06 00:49 Darren 閱讀(520) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            美女999久久久精品视频| 欧美一区二区三区视频| 美女在线一区二区| 伊人男人综合视频网| 欧美大片在线看| 久久成人精品| 99在线精品视频| 欧美不卡一卡二卡免费版| 亚洲欧美久久| 亚洲在线电影| 亚洲国产日韩欧美一区二区三区| 亚洲欧美日本日韩| 性欧美暴力猛交69hd| 亚洲欧美日韩在线综合| 欧美一区二区成人6969| 欧美一区二区三区四区在线观看| 欧美一区二区三区在线看| 开心色5月久久精品| 在线欧美影院| 1769国内精品视频在线播放| 在线不卡免费欧美| 亚洲精品影院| 性8sex亚洲区入口| 亚洲国产天堂久久综合网| 久久蜜桃香蕉精品一区二区三区| 小处雏高清一区二区三区| 久久免费精品视频| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美一区不卡| 欧美中文日韩| 亚洲国产精品成人一区二区| 99精品免费网| 噜噜噜躁狠狠躁狠狠精品视频| 最新成人在线| 久久精品国产久精国产思思| 欧美日韩国产成人在线91| 国内一区二区在线视频观看| 亚洲欧美乱综合| 欧美视频在线观看视频极品| 欧美日韩国产高清| 亚洲美女诱惑| 国产精品99久久久久久人 | 农夫在线精品视频免费观看| 久久久久久久久久看片| 一本一道久久综合狠狠老精东影业| 蜜桃视频一区| 久久久国产一区二区三区| 国产日韩一区在线| 久久国产精品久久久久久| 海角社区69精品视频| 精品1区2区3区4区| 亚洲高清自拍| 欧美精品色一区二区三区| 中日韩高清电影网| 在线亚洲精品| 在线电影一区| 亚洲美女91| 国内一区二区三区在线视频| 久久9热精品视频| 免费不卡中文字幕视频| 99re这里只有精品6| 欧美亚洲免费高清在线观看| 亚洲激情在线视频| 欧美在线你懂的| 最新成人av在线| 欧美一区二粉嫩精品国产一线天| 亚洲国产女人aaa毛片在线| 一区二区高清| 国产又爽又黄的激情精品视频| 欧美激情亚洲自拍| 国产一区二区剧情av在线| 精品不卡一区二区三区| 日韩视频二区| 亚洲黄色尤物视频| 欧美一区二区精品久久911| 欧美黄色大片网站| 午夜影院日韩| 久久久久久久国产| 国产精品毛片a∨一区二区三区|国 | 欧美韩日一区二区| 伊人成年综合电影网| 欧美一区二区三区的| 欧美激情国产日韩| 欧美成人综合在线| 一区二区在线视频播放| 欧美一区二区三区在线免费观看| 亚洲欧美日韩国产精品| 亚洲乱码国产乱码精品精天堂 | 99国产精品久久久久久久| 久久激情网站| 亚洲欧美日韩另类| 亚洲一区二区三区四区在线观看| 最新国产成人在线观看| 欧美日韩国产精品一区二区亚洲| 亚洲国内自拍| 亚洲欧美区自拍先锋| 鲁大师成人一区二区三区 | 亚洲精品国产精品国自产在线 | 欧美日韩在线另类| 午夜精品久久久99热福利| 久久精品国产欧美激情 | 尤物在线观看一区| 牛牛影视久久网| 国产精品99久久久久久久久久久久| 欧美在线视频一区二区三区| 亚洲欧美日韩国产中文| 国产亚洲精品v| 欧美日韩精品是欧美日韩精品| 午夜一区二区三区在线观看| 亚洲精品视频在线观看网站| 久久精品视频在线| 亚洲欧美资源在线| 一个人看的www久久| 最新中文字幕一区二区三区| 国产美女一区| 亚洲一区二区三区视频播放| 欧美电影免费| 久久久久久日产精品| 亚洲欧美bt| 久久精品国产视频| 欧美成人影音| 国产视频亚洲精品| 国产精品色午夜在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲一区在线免费| 欧美亚洲综合久久| 久久久www免费人成黑人精品| 午夜精品视频在线| 性做久久久久久久久| 久久精品夜色噜噜亚洲aⅴ| 羞羞答答国产精品www一本 | 亚洲乱码一区二区| 亚洲特级片在线| 香蕉久久久久久久av网站| 欧美专区福利在线| 久久久久久97三级| 最近中文字幕日韩精品| 亚洲激情六月丁香| 欧美一级免费视频| 美日韩精品视频| 欧美日韩国产区| 国产主播一区| 性娇小13――14欧美| 欧美激情综合色| 国产原创一区二区| 亚洲欧美日产图| 国产日韩欧美在线| 国产精品久久久久久久久免费樱桃 | 久久青青草综合| 亚洲巨乳在线| 你懂的网址国产 欧美| 国产一区二区中文字幕免费看| 日韩西西人体444www| 性欧美videos另类喷潮| 在线观看视频免费一区二区三区| 欧美片网站免费| 在线精品国产欧美| 久久久久久久综合日本| 国产精品青草久久久久福利99| 国产亚洲欧美一区在线观看| 亚洲先锋成人| 亚洲影视在线| 国产欧美1区2区3区| 久久本道综合色狠狠五月| 亚洲精品日韩在线观看| 欧美精品在线免费| 亚洲一区二区免费看| 亚洲社区在线观看| 国产伦一区二区三区色一情| 欧美激情精品久久久久久免费印度 | 国产精品久久久久久久久久妞妞| 一区二区av在线| 亚洲欧美日韩国产另类专区| 国产精品久久毛片a| 久久国产乱子精品免费女 | 久久久999精品免费| 蜜臀久久99精品久久久久久9 | 亚洲乱码国产乱码精品精天堂 | 欧美激情欧美狂野欧美精品| 欧美69视频| 欧美一级二级三级蜜桃| 久久一本综合频道| 亚洲欧美日韩视频一区| 欧美精彩视频一区二区三区| 日韩一级网站| 久久人人爽国产| 欧美国产综合| 久久久久综合一区二区三区| 欧美久久精品午夜青青大伊人| 欧美日韩成人在线| 欧美风情在线| 在线视频国内自拍亚洲视频| 欧美在线高清视频| 欧美伊人精品成人久久综合97| 欧美中文字幕在线观看| 亚洲免费在线| 午夜精品视频一区| 国产精品网站在线播放| 亚洲一区二区欧美| 亚洲欧美日韩人成在线播放|