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

#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 閱讀(525) 評論(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>
            亚洲专区在线| 亚洲一区二区高清| 国产精品99久久久久久久久久久久| 欧美国产高清| 久久av一区二区三区漫画| 国产日产欧产精品推荐色| 欧美在线免费观看视频| 午夜精品久久久久久99热软件| 国产精品久久久久久久久婷婷| 亚洲在线1234| 欧美一区二区大片| 精品av久久久久电影| 欧美黄色网络| 欧美日韩亚洲一区二区三区在线观看| 日韩视频一区二区三区在线播放免费观看| 亚洲第一在线综合在线| 欧美成人免费网| 亚洲午夜未删减在线观看| 一本色道久久99精品综合| 国产精品午夜电影| 亚洲男人的天堂在线观看| 欧美大片在线观看| 欧美精品电影| 久久本道综合色狠狠五月| 久久精品国产清自在天天线| 亚洲国产精品久久久久久女王| 亚洲国产成人av在线| 欧美视频中文字幕在线| 久久久久一区二区| 欧美—级a级欧美特级ar全黄| 亚洲欧美久久| 久久亚洲综合色一区二区三区| 中文一区在线| 久久精品一区中文字幕| 亚洲视频在线播放| 久久全国免费视频| 亚洲欧美99| 欧美成人按摩| 久久久欧美精品sm网站| 欧美日韩在线视频首页| 免费成人av资源网| 国产精品男女猛烈高潮激情| 欧美国产日韩xxxxx| 国产精品揄拍500视频| 亚洲国产精品www| 国产欧美日韩视频| 日韩视频永久免费观看| 亚洲经典自拍| 久久午夜av| 久久久精品国产99久久精品芒果| 欧美日韩视频在线观看一区二区三区| 久久久亚洲高清| 国产精品手机视频| 日韩视频精品在线| 亚洲精品国精品久久99热| 久久av资源网| 久久精品视频在线观看| 欧美性猛交视频| 99国产一区| 亚洲精品日韩在线| 久久婷婷av| 免播放器亚洲一区| 精品成人乱色一区二区| 欧美中日韩免费视频| 欧美一区二区女人| 国产欧美日韩精品在线| 亚洲欧美日韩电影| 欧美一区亚洲| 国产日韩视频| 久久精品五月| 美女黄色成人网| 影音先锋中文字幕一区| 久久嫩草精品久久久久| 欧美a级一区| 亚洲日韩欧美视频| 欧美99在线视频观看| 亚洲高清在线| 在线天堂一区av电影| 欧美日韩精品国产| 亚洲网站视频| 久久gogo国模裸体人体| 国产原创一区二区| 久久久久免费观看| 亚洲韩国青草视频| 亚洲视频香蕉人妖| 国产女人水真多18毛片18精品视频| 午夜精品久久久久久久白皮肤| 久久成人人人人精品欧| 黄色影院成人| 欧美不卡高清| 一区二区电影免费观看| 欧美在线|欧美| 在线播放日韩欧美| 欧美成人情趣视频| 99视频有精品| 久久久久久久久久久久久女国产乱 | 黄色精品一二区| 老鸭窝毛片一区二区三区| 亚洲激情电影在线| 欧美一区二区免费观在线| 亚洲国产成人精品女人久久久 | 国产一在线精品一区在线观看| 久久久久久9| 日韩天天综合| 久久婷婷综合激情| 一区二区久久| 激情伊人五月天久久综合| 欧美黄色影院| 欧美一区二区免费| 亚洲精品国产精品乱码不99| 欧美一区二区三区四区高清| 91久久精品美女高潮| 国产精品视频福利| 免费欧美日韩| 午夜久久99| 亚洲人体一区| 美女诱惑黄网站一区| 欧美夜福利tv在线| 一本色道久久88精品综合| 国产尤物精品| 国产精品美女午夜av| 免费亚洲网站| 久久久人成影片一区二区三区| 一区二区三区av| 亚洲国产va精品久久久不卡综合| 欧美在线视频一区| 中文在线资源观看视频网站免费不卡| 永久久久久久| 国产综合在线视频| 国产精品日韩在线| 欧美日韩大陆在线| 美女91精品| 久久午夜国产精品| 久久激情视频久久| 性一交一乱一区二区洋洋av| 99成人在线| 日韩系列在线| 亚洲人成人77777线观看| 欧美成人精品三级在线观看| 久久精品亚洲乱码伦伦中文| 午夜精品影院在线观看| av成人激情| 在线亚洲电影| 在线中文字幕日韩| 亚洲小说欧美另类婷婷| 在线视频日韩精品| 亚洲午夜久久久| 亚洲欧美视频一区二区三区| 欧美中在线观看| 久久久久9999亚洲精品| 在线亚洲免费| 中文一区在线| 亚洲一区二区高清| 亚洲一二区在线| 亚洲欧美日韩中文在线制服| 午夜精品久久久久久久久久久| 亚洲免费在线播放| 性欧美暴力猛交另类hd| 羞羞色国产精品| 久久精品99久久香蕉国产色戒| 欧美本精品男人aⅴ天堂| 久久久精品国产99久久精品芒果| 久久成人18免费网站| 久久女同互慰一区二区三区| 久久中文在线| 欧美激情视频一区二区三区免费| 亚洲春色另类小说| 最新高清无码专区| av不卡在线看| 午夜精品视频一区| 久久久久久一区二区三区| 久久躁日日躁aaaaxxxx| 欧美久久成人| 国产欧美日本一区视频| 亚洲大胆av| 亚洲一级黄色| 久久久久久久波多野高潮日日 | 欧美精品激情在线| 欧美三区不卡| 好看不卡的中文字幕| 亚洲美女av电影| 欧美一级视频精品观看| 欧美大尺度在线| 一二三区精品| 玖玖玖免费嫩草在线影院一区| 欧美日韩精品是欧美日韩精品| 国产婷婷色一区二区三区在线| 亚洲成色最大综合在线| 亚洲在线免费观看| 蜜臀av一级做a爰片久久| 一区二区三区免费网站| 久久人人97超碰国产公开结果| 欧美日韩一区二区免费视频| 黄色成人片子| 亚洲欧美一区二区三区极速播放| 模特精品裸拍一区| 翔田千里一区二区| 欧美日本视频在线| 亚洲国产一区二区精品专区| 久久精品国产99精品国产亚洲性色|