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

#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>
            亚洲欧美日韩人成在线播放| 国产精品久久久久aaaa樱花| 亚洲日本视频| 久久亚洲国产精品日日av夜夜| 欧美在线免费观看亚洲| 久久国产手机看片| 久久一区二区三区国产精品| 女女同性女同一区二区三区91| 亚洲国产精品精华液网站| 99www免费人成精品| 亚洲视频一起| 久久视频国产精品免费视频在线| 欧美18av| 国产精品一区二区久久精品| 雨宫琴音一区二区在线| 精品不卡在线| 一区二区日韩欧美| 久久久九九九九| 亚洲精品在线观看视频| 羞羞色国产精品| 久久精品网址| 欧美日本一区二区三区| 国内精品久久久久久久97牛牛| 亚洲欧洲一区二区三区| 先锋影音久久久| 欧美日韩黄色大片| 黄网站免费久久| 一区二区日本视频| 久久精品一区二区国产| 日韩网站在线看片你懂的| 欧美一级淫片播放口| 欧美成人精品一区| 国内精品国产成人| 亚洲视频免费看| 免费观看不卡av| 亚洲欧美国产不卡| 欧美成人精品福利| 国产亚洲欧美在线| 午夜久久黄色| 亚洲精品久久久久久久久久久| 欧美一区二区三区婷婷月色| 欧美系列精品| 一本色道久久综合亚洲精品不| 免费看亚洲片| 久久精品盗摄| 国产一区二区三区观看| 羞羞答答国产精品www一本| 亚洲免费av观看| 欧美精品免费在线| 亚洲精品免费在线观看| 欧美激情在线狂野欧美精品| 久久久综合激的五月天| 狠狠色香婷婷久久亚洲精品| 久久久.com| 欧美在线观看视频一区二区三区| 国产麻豆精品在线观看| 欧美一区二区三区另类| 亚洲一区二区三区欧美| 国产精品扒开腿爽爽爽视频| 亚洲一区二区三区在线视频| 9久re热视频在线精品| 欧美日韩国产免费| 在线视频日韩精品| 亚洲无毛电影| 国产亚洲成精品久久| 久久精品国产久精国产思思 | 亚洲国产日韩欧美综合久久| 老司机午夜精品视频| 91久久精品一区二区别| 亚洲激情另类| 欧美日韩一区三区四区| 亚洲一区三区视频在线观看 | 久色婷婷小香蕉久久| 六月婷婷一区| 亚洲视频中文字幕| 欧美一级成年大片在线观看| 黄色欧美成人| 亚洲国产导航| 国产精品白丝av嫩草影院| 欧美在线免费观看| 蜜桃av一区二区| 亚洲一区二区三区在线播放| 久久久99爱| 久久久久一区二区三区四区| 亚洲欧洲中文日韩久久av乱码| 日韩一级精品| 国产亚洲毛片| 亚洲国产电影| 国产精品久久久久久久久免费 | 中日韩午夜理伦电影免费| 亚洲一级在线| 亚洲国产91色在线| 一区二区精品在线观看| 黑人一区二区| 亚洲免费av电影| 伊伊综合在线| 亚洲天堂免费观看| 亚洲国内精品在线| 亚洲一区二区三区成人在线视频精品| 国内欧美视频一区二区| 日韩午夜在线观看视频| 永久免费毛片在线播放不卡| 中国成人黄色视屏| 亚洲精品护士| 久久精品一区二区| 性欧美超级视频| 欧美日本乱大交xxxxx| 免费一级欧美片在线播放| 国产精品视频xxx| 亚洲精选大片| 亚洲精品系列| 久久天堂成人| 久久精品亚洲乱码伦伦中文| 男同欧美伦乱| 久久综合狠狠| 国产欧美日韩综合一区在线播放 | 鲁大师成人一区二区三区| 亚洲永久在线观看| 久久另类ts人妖一区二区| 性欧美video另类hd性玩具| 麻豆精品国产91久久久久久| 欧美一二三区精品| 国产精品国色综合久久| 亚洲精品三级| 日韩午夜中文字幕| 亚洲永久免费av| 亚洲神马久久| 欧美日韩国产一级片| 免费观看成人| 亚洲激情视频网站| 久久性天堂网| 欧美大片一区| 亚洲精品日韩在线| 欧美极品在线播放| 亚洲精品久久嫩草网站秘色 | 久久久亚洲精品一区二区三区| 久久久国产成人精品| 国产亚洲日本欧美韩国| 欧美亚洲在线观看| 麻豆精品国产91久久久久久| 在线观看亚洲一区| 亚洲大片一区二区三区| 亚洲国产成人tv| 免费av成人在线| 91久久中文| 亚洲直播在线一区| 国产伦精品一区二区三区免费迷| 午夜精品久久久久久久蜜桃app| 久久er99精品| 在线视频观看日韩| 欧美韩国一区| 一本色道久久加勒比88综合| 欧美一区三区三区高中清蜜桃| 国产午夜精品久久久| 久久只精品国产| 亚洲精品免费在线观看| 亚洲欧美999| 激情五月婷婷综合| 欧美丰满少妇xxxbbb| 亚洲色在线视频| 久久综合一区二区| 亚洲无玛一区| 影音先锋国产精品| 欧美日韩高清一区| 欧美一区二区三区免费视| 欧美电影免费观看高清| 亚洲网站在线播放| 亚洲电影视频在线| 欧美日韩国产色视频| 欧美亚洲视频一区二区| 亚洲激情偷拍| 久久精品国产免费| 一区二区三区波多野结衣在线观看| 国产精品一区免费观看| 欧美本精品男人aⅴ天堂| 亚洲一区二区在线观看视频| 欧美成人中文字幕在线| 先锋亚洲精品| 宅男精品视频| 亚洲国产精品综合| 国产欧美三级| 欧美日韩中文字幕精品| 久久婷婷亚洲| 午夜精品亚洲| 一本一道久久综合狠狠老精东影业| 免费一区视频| 久久美女性网| 亚洲欧美文学| 一本久道久久久| 亚洲黄网站在线观看| 国产亚洲欧洲| 国产日韩欧美夫妻视频在线观看| 欧美日韩精品一区| 久热精品视频在线| 久久不射2019中文字幕| 亚洲欧美日韩久久精品 | 欧美不卡视频一区| 久久久水蜜桃| 久久免费的精品国产v∧| 欧美中文字幕在线视频|