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

#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 閱讀(524) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            日韩网站免费观看| 久久夜色精品国产噜噜av| 日韩一级精品视频在线观看| 亚洲综合三区| 亚洲国产精品va在线观看黑人| 欧美精品在线免费观看| 伊大人香蕉综合8在线视| 亚洲高清中文字幕| 羞羞视频在线观看欧美| 久久天天狠狠| 亚洲一区二区在| 蜜桃av噜噜一区| 女同性一区二区三区人了人一| 国产精品永久免费观看| 亚洲精品久久久久中文字幕欢迎你| 国产精品久久中文| 午夜精品亚洲一区二区三区嫩草| 免费中文日韩| 麻豆国产va免费精品高清在线| 正在播放日韩| 久久av资源网| 一区在线视频观看| 午夜精彩国产免费不卡不顿大片| 在线日韩av| 亚洲一区在线观看免费观看电影高清| 亚洲第一级黄色片| 国产精品一区二区a| 免费在线观看一区二区| 欧美大片18| 午夜日韩激情| 欧美成人综合| 性欧美办公室18xxxxhd| 欧美大秀在线观看| 国产农村妇女毛片精品久久莱园子 | 亚洲——在线| 久久亚洲精品中文字幕冲田杏梨 | 亚洲区第一页| 中文在线一区| 欧美激情2020午夜免费观看| 亚洲欧美一区二区三区久久| 免费日韩成人| 欧美va天堂| 久久精品亚洲一区二区| 夜夜嗨av一区二区三区四区| 欧美偷拍另类| 国产精品国产三级国产aⅴ入口 | 亚洲电影成人| 国产精品成人一区二区网站软件| 久久国产天堂福利天堂| 欧美gay视频| 久久精品国产亚洲精品| 国产色视频一区| 欧美一区日韩一区| 午夜精品电影| 亚洲精品久久久久久一区二区 | 欧美理论片在线观看| 裸体丰满少妇做受久久99精品 | 亚洲欧美激情诱惑| 老司机精品视频网站| 亚洲精品欧美专区| 亚洲福利视频网站| 欧美成人影音| 一区二区三区日韩| 久久精品国产久精国产思思| 国产精品一国产精品k频道56| 亚洲男人的天堂在线aⅴ视频| 久久精品视频在线看| 亚洲小视频在线观看| 麻豆精品91| 久久久精品动漫| 亚洲韩国青草视频| 久久黄色影院| 亚洲性xxxx| 亚洲一区二区在线播放| 国产精品福利在线观看| 欧美久久久久久蜜桃| 欧美精品二区| 久久人体大胆视频| 亚洲二区视频在线| 久热精品视频在线观看| 欧美成人中文字幕| 亚洲理伦电影| 欧美中文字幕视频在线观看| 亚洲专区国产精品| 亚洲一区免费| 香蕉尹人综合在线观看| 香蕉久久夜色精品| 麻豆成人在线| 亚洲片国产一区一级在线观看| 亚洲卡通欧美制服中文| 午夜影院日韩| 久久综合色播五月| 欧美日韩免费精品| 国内成人自拍视频| 亚洲欧洲一区二区三区| 亚洲一区精品电影| 久久综合久久综合这里只有精品| 亚洲国产福利在线| 欧美自拍偷拍| 国产精品一区二区久久久久| 国产欧美在线看| 亚洲资源av| 亚洲精品在线二区| 久久综合九色综合网站| 国产主播一区二区| 亚洲欧美日韩电影| 亚洲免费观看高清完整版在线观看| 午夜影视日本亚洲欧洲精品| 欧美天堂在线观看| 9色精品在线| 亚洲精品日韩精品| 亚洲一区视频在线| 免费久久99精品国产| 亚洲在线免费| 国产女人18毛片水18精品| 一本久久综合亚洲鲁鲁| 久久久久久自在自线| 亚洲一区久久久| 国产亚洲精品久久久久婷婷瑜伽 | 欧美黄色日本| 欧美日韩成人一区| 久久精品人人做人人综合| 久久久久久一区二区三区| 一区二区三区高清在线| 亚洲中午字幕| 亚洲最新视频在线| 欧美中文字幕在线视频| 在线观看视频免费一区二区三区| 亚洲色诱最新| 欧美黄色小视频| 久久精视频免费在线久久完整在线看| 欧美新色视频| 欧美中文字幕不卡| 久久精品亚洲乱码伦伦中文| 精品动漫3d一区二区三区| 久久综合国产精品台湾中文娱乐网| 99精品欧美一区二区蜜桃免费| 欧美国产日韩二区| 一区二区三区福利| 亚洲一区精彩视频| 在线精品视频免费观看| 蜜臀av在线播放一区二区三区| 免费久久精品视频| 亚洲狼人精品一区二区三区| 亚洲美女网站| 国产日韩欧美亚洲一区| 久久综合网络一区二区| 欧美精品麻豆| 久久综合久久综合这里只有精品 | 一区二区冒白浆视频| 在线亚洲精品| 欧美一区二区三区在线看| 国产亚洲精品久久久| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲精品少妇30p| 亚洲午夜精品网| 亚洲精品美女久久久久| 午夜在线观看欧美| 欧美久久一区| 欧美激情国产日韩| 国产精品亚洲视频| 亚洲成色777777在线观看影院| 欧美午夜不卡| 日韩亚洲在线观看| 亚洲精品激情| 美女主播视频一区| 欧美jizz19性欧美| 一本一本久久a久久精品综合妖精| 噜噜爱69成人精品| 久久综合网络一区二区| 极品尤物av久久免费看| 欧美另类videos死尸| 欧美成人资源| 亚洲美女网站| 欧美一区不卡| 亚洲国产一区二区精品专区| 亚洲精品视频在线看| 欧美区一区二区三区| 一区二区免费在线视频| 中日韩美女免费视频网址在线观看 | 国产精品视频免费观看www| 一区二区激情| 欧美国产日本| 亚洲欧美日韩精品久久| 精品av久久久久电影| 欧美日韩久久精品| 久久综合给合| 葵司免费一区二区三区四区五区| 免费成人性网站| 亚洲电影av在线| 欧美精品免费看| 午夜亚洲性色视频| 亚洲国产一区二区精品专区| 亚洲欧美激情精品一区二区| 国产亚洲欧美另类中文| 欧美亚洲尤物久久| 亚洲一区二区少妇| 亚洲国产成人精品女人久久久 | 老司机精品视频网站| 久久精品国产欧美激情|