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

POJ 1151 Atlantis 離散化+掃描線

Problem Description
There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe different regions of Atlantis. Your friend Bill has to know the total area for which maps exist. You (unwisely) volunteered to write a program that calculates this quantity.
 

Input
The input file consists of several test cases. Each test case starts with a line containing a single integer n (1<=n<=100) of available maps. The n following lines describe one map each. Each of these lines contains four numbers x1;y1;x2;y2 (0<=x1<x2<=100000;0<=y1<y2<=100000), not necessarily integers. The values (x1; y1) and (x2;y2) are the coordinates of the top-left resp. bottom-right corner of the mapped area.

The input file is terminated by a line containing a single 0. Don’t process it.
 

Output
For each test case, your program should output one section. The first line of each section must be “Test case #k”, where k is the number of the test case (starting with 1). The second one must be “Total explored area: a”, where a is the total explored area (i.e. the area of the union of all rectangles in this test case), printed exact to two digits to the right of the decimal point.

Output a blank line after each test case.
 

Sample Input
2
10 10 20 20
15 15 25 25.5
0
 

Sample Output
Test case #1
Total explored area: 180.00 
    題目的意思是給定n個(gè)矩形的2n個(gè)坐標(biāo),求矩形的覆蓋面積。如果開(kāi)一個(gè)大的bool數(shù)組,將覆蓋過(guò)的部分更新為true,再?gòu)念^到尾掃描一遍,在坐標(biāo)范圍比較小的情況下,可以求解。但是如果坐標(biāo)x,y的取值范圍很大,比如[-10^8,10^8],用上面這個(gè)方法就不能求解了;而且坐標(biāo)還有可能是實(shí)數(shù),上面的方法就更加不可行了,需要尋找一種新的解法,就是下面要說(shuō)到的“離散化”。
    注意到要表示一個(gè)矩形,只需要知道其2個(gè)頂點(diǎn)的坐標(biāo)就可以了(最左下,最右上)。可以用2個(gè)數(shù)組x[0...2n-1],y[0...2n-1]記錄下矩形Ri的2個(gè)坐標(biāo)(x1,y1),(x2,y2),然后將數(shù)組x[0...xn-1],y[0...2n-1]排序,為下一步的掃描線作準(zhǔn)備,這就是離散化的思想。這題還可以用線段樹(shù)做進(jìn)一步優(yōu)化,但是這里只介紹離散化的思想。
    看下面這個(gè)例子:有2個(gè)矩形(1,1),(3,3)和(2,2),(4,4)。如圖:
    圖中虛線表示掃描線,下一步工作只需要將這2個(gè)矩形覆蓋過(guò)的部分的bool數(shù)組的對(duì)應(yīng)位置更新為true,接下去用掃描線從左到右,從上到下掃描一遍,就可以求出矩形覆蓋的總面積。
    這個(gè)圖對(duì)應(yīng)的bool數(shù)組的值如下:
    1 1 0                       1 2 3
    1 1 1       <---->       4 5 6
    0 1 1                       7 8 9
 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4 
 5 const int N = 101;
 6 const double eps = 1e-6;
 7 double ans,x[2*N],y[2*N];
 8 double pos[N][4];
 9 bool hash[2*N][2*N];
10 
11 int cmp(const void *a,const  void *b){
12     double *aa = (double *)a;
13     double *bb = (double *)b;
14     if(fabs(*aa-*bb)<=eps) return 0;
15     else if(*aa-*bb>0return 1;
16     else return -1;
17 }
18 int main(){
19     int i,j,k,n,x1,x2,y1,y2,ca=1;
20     while(scanf("%d",&n),n){
21         for(ans=i=k=0;i<n;i++,k+=2){
22             scanf("%lf %lf %lf %lf",&pos[i][0],&pos[i][1],&pos[i][2],&pos[i][3]);
23             x[k]=pos[i][0],y[k]=pos[i][1],x[k+1]=pos[i][2],y[k+1]=pos[i][3];
24         }
25         memset(hash,false,sizeof(hash));
26         qsort(x,2*n,sizeof(x[0]),cmp);
27         qsort(y,2*n,sizeof(y[0]),cmp);
28         for(i=0;i<n;i++){
29             for(k=0;fabs(x[k]-pos[i][0])>eps;k++); x1=k;
30             for(k=0;fabs(y[k]-pos[i][1])>eps;k++); y1=k;
31             for(k=0;fabs(x[k]-pos[i][2])>eps;k++); x2=k;
32             for(k=0;fabs(y[k]-pos[i][3])>eps;k++); y2=k;
33             for(j=x1;j<x2;j++for(k=y1;k<y2;k++)
34                 hash[j][k]=true;
35         }
36         for(i=0;i<2*n-1;i++)
37             for(j=0;j<2*n-1;j++)
38                 ans+=hash[i][j]*(x[i+1]-x[i])*(y[j+1]-y[j]);            
39         printf("Test case #%d\n",ca++);
40         printf("Total explored area: %.2lf\n",ans);
41         printf("\n");
42     }
43     return 0;
44 }

posted on 2009-04-26 19:43 極限定律 閱讀(735) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): ACM/ICPC

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(10)

隨筆分類(lèi)

隨筆檔案

友情鏈接

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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电影| 久久精品噜噜噜成人av农村| 亚洲国产精品尤物yw在线观看| 欧美日韩国产一区二区| 欧美日本国产精品| 久久久97精品| 久久亚洲免费| 久久国产一区二区| 午夜激情久久久| 久久久精品日韩| 午夜精品久久久久99热蜜桃导演| 亚洲永久视频| 亚洲一区二区在线看| 性色av一区二区三区| 在线亚洲免费| 久久精品91| 久久亚洲捆绑美女| 中文在线不卡视频| 99视频在线精品国自产拍免费观看| 欧美在线观看视频一区二区三区| 久久国产福利国产秒拍| 日韩午夜三级在线| 亚洲免费视频观看| 亚洲欧美日韩精品久久亚洲区| 亚洲国产精品999| 在线观看日韩www视频免费| 国产精品三上| 国产午夜精品全部视频在线播放| 欧美国产精品中文字幕| 国产精品青草久久久久福利99| 国产精品成人在线| **性色生活片久久毛片| 亚洲精品欧美日韩专区| 性欧美暴力猛交69hd| 欧美尤物巨大精品爽| 欧美一区在线直播| 亚洲另类自拍| 欧美一区二区成人| 欧美日韩中文字幕在线视频| 国产精品乱人伦中文| 国内精品视频一区| 亚洲黄色成人网| 亚洲免费在线视频| 欧美第一黄网免费网站| 国产精品国产三级国产普通话蜜臀| 亚洲国产成人久久综合| 久久一区激情| 欧美成人午夜| 一本久久青青| 免费永久网站黄欧美| 欧美日韩高清在线一区| 伊人久久成人| 亚洲欧美一区二区原创| 开元免费观看欧美电视剧网站| 中文有码久久| 蜜桃av噜噜一区二区三区| 国产日韩欧美三级| 亚洲高清视频一区| 亚洲一区二区三区午夜| 亚洲精品视频一区| 久久久精品视频成人| 国产亚洲欧美一区| 一区二区三区www| 免费影视亚洲| 麻豆国产精品一区二区三区| 国产精品不卡在线| 亚洲影音一区| 亚洲人www| 亚洲天堂免费在线观看视频| 久久综合久久综合久久| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久久精品午夜少妇| 亚洲精品乱码久久久久久日本蜜臀 | 欧美自拍偷拍| 一区二区毛片| 欧美大片第1页| 精品动漫3d一区二区三区| 亚洲永久网站| 亚洲伦理在线免费看| 久久精品水蜜桃av综合天堂| 国产精品一区毛片| 亚洲一区中文字幕在线观看| 亚洲黄网站黄| 欧美福利视频| 亚洲精品久久久一区二区三区| 另类激情亚洲| 久久久亚洲一区| 黄色av成人| 免费亚洲网站| 久久一二三四| 亚洲国产精品久久91精品| 免费观看一区| 欧美多人爱爱视频网站| 亚洲高清成人| 亚洲国产精品成人久久综合一区| 亚洲视频欧美在线| 国产精品午夜在线观看| 久久www免费人成看片高清| 亚洲欧美bt| 国产综合欧美在线看| 亚洲婷婷在线| 亚洲第一福利社区| 久久午夜电影网| 国产日韩欧美一区二区三区在线观看 | 国产精品美女一区二区| 久久aⅴ国产紧身牛仔裤| 亚洲一区二区高清视频| 国产欧美日本一区二区三区| 亚洲毛片在线免费观看| 久久激情五月激情| 欧美中日韩免费视频| 亚洲精品少妇30p| 91久久精品一区二区别| 欧美日韩国产三区| 亚洲免费视频网站| 久久久国产午夜精品| 日韩天天综合| 亚洲高清视频在线| 久久久欧美精品sm网站| 裸体一区二区| 久久国产精品久久久| 国产偷国产偷精品高清尤物| 亚洲午夜激情| 一区二区激情| 国产精品久久久999| 亚洲欧美精品一区| 久久综合激情| 久久久av网站| 伊人色综合久久天天| 亚洲精品久久久蜜桃| 国内成人自拍视频| 99热在线精品观看| 影音先锋欧美精品| 亚洲一区二区三区免费视频| 亚洲国产精品第一区二区三区| 亚洲一区二区三区影院| 亚洲人在线视频| 欧美在线3区| 亚洲一区二区在| 一区二区欧美在线| 国产精品美女久久福利网站| 新67194成人永久网站| 亚洲欧美日韩精品久久久| 国内精品国语自产拍在线观看| 免费观看成人网| 国产色综合网| 亚洲午夜未删减在线观看| 亚洲黄色性网站| 欧美一级电影久久| 香蕉久久夜色| 欧美日韩一区二区三区视频| 欧美黑人在线播放| 黄色成人片子| 欧美中文字幕在线| 欧美亚洲视频在线观看| 国产精品都在这里| av成人手机在线| 亚洲最新中文字幕| 欧美精品www在线观看| 欧美成在线视频| 亚洲国产二区| 久久综合网hezyo| 欧美大片91| 亚洲欧洲综合另类在线| 免费观看成人网| 亚洲精品1234| 亚洲精品日产精品乱码不卡| 欧美国产先锋| 欧美成人tv| 久久久天天操| 国产农村妇女精品| 久久久国产成人精品| 国产精品久99| 亚洲影院免费观看| 亚洲淫性视频| 国产精品一区一区| 欧美专区亚洲专区| 久久综合激情| 亚洲国产精品视频一区| 欧美成人精品激情在线观看| 亚洲国产精品一区二区第四页av| 亚洲精品欧美日韩专区| 欧美日韩专区| 亚洲综合导航| 蜜乳av另类精品一区二区| 国产精品视频999| 国产精品一二三四| 久久久人人人| 亚洲精选久久| 久久亚洲不卡| 老色鬼精品视频在线观看播放| 国产精品久久国产精麻豆99网站| 欧美激情一区二区在线| 在线观看成人网| 免费成人黄色| 亚洲综合另类| 欧美电影免费观看高清完整版| 亚洲大片av| 亚洲综合色视频| 国产综合色在线|