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

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>
            欧美日韩国产精品| 亚洲免费电影在线| 91久久极品少妇xxxxⅹ软件| 国产精品视频网| 亚洲欧洲精品成人久久奇米网 | 欧美电影免费网站| 国产一区二区三区高清| 99re热精品| 99视频精品免费观看| 嫩草成人www欧美| 欧美成人精品福利| 亚洲电影免费在线| 久久亚洲国产成人| 欧美国产专区| 91久久久在线| 欧美精品激情在线观看| 亚洲激情中文1区| 亚洲精品乱码久久久久| 欧美黑人多人双交| 亚洲精品免费电影| 一区二区三区免费观看| 欧美日韩亚洲三区| 亚洲天天影视| 欧美尤物一区| 韩国精品一区二区三区| 久久免费午夜影院| 欧美激情一区二区三区在线| 亚洲精品久久久久| 欧美色大人视频| 亚洲图片欧美日产| 久久精品午夜| 最新日韩精品| 欧美色123| 欧美在线3区| 亚洲成人资源网| 一区二区欧美日韩| 国产精品久久久久久妇女6080| 亚洲午夜三级在线| 免费成人av| 99香蕉国产精品偷在线观看| 欧美性猛交xxxx乱大交退制版 | 免费观看不卡av| 99re8这里有精品热视频免费| 亚洲一区二区三区中文字幕| 国产日本欧美在线观看| 久久亚洲精品伦理| 夜夜爽www精品| 久久久综合视频| 亚洲精品你懂的| 国产精品欧美一区喷水| 久久精品一区中文字幕| 亚洲福利视频三区| 亚洲在线观看免费| 亚洲国产精品成人综合色在线婷婷| 欧美精品麻豆| 日韩视频永久免费| 国产欧美三级| 免费日韩成人| 欧美一级久久久久久久大片| 欧美激情第三页| 久久大综合网| 在线一区二区三区做爰视频网站 | 久久国产色av| 99亚洲一区二区| 精品动漫3d一区二区三区免费| 欧美精品日韩www.p站| 午夜精品久久久久久久99水蜜桃| 欧美激情在线| 久久久久久久久久久久久久一区| 亚洲最新中文字幕| 一区二区三区在线不卡| 国产精品白丝av嫩草影院| 久久久久国产精品麻豆ai换脸| 99国产麻豆精品| 欧美激情一区| 免费久久99精品国产| 欧美亚洲综合在线| 一区二区动漫| 亚洲精品视频在线观看网站| 好吊妞**欧美| 国产午夜精品全部视频播放| 欧美亚洲不卡| 欧美日韩免费在线视频| 久久综合伊人77777蜜臀| 欧美一级精品大片| 亚洲欧美日韩综合| 亚洲在线国产日韩欧美| 日韩一区二区久久| 亚洲精品一区二区网址| 亚洲电影视频在线| 欧美黄色日本| 欧美高清视频一区| 欧美成人国产一区二区| 嫩草影视亚洲| 欧美风情在线| 亚洲黄色成人| 亚洲日本精品国产第一区| 欧美激情按摩在线| 亚洲国产岛国毛片在线| 亚洲国产一区二区三区在线播| 欧美成人一区二区| 亚洲丰满在线| 亚洲三级视频| 一区二区三区免费看| 一区二区三区四区五区精品| 99视频精品全部免费在线| 日韩亚洲欧美成人一区| 一本久道久久久| 亚洲影院免费观看| 欧美一级视频一区二区| 久久国产欧美| 久久最新视频| 欧美日韩亚洲一区二区| 国产精品久久久久久久午夜片| 国产精品视频不卡| 国模精品一区二区三区| 亚洲成色999久久网站| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲人成啪啪网站| 亚洲一区二区精品在线观看| 久久aⅴ国产欧美74aaa| 狼人天天伊人久久| 亚洲国产老妈| 一区二区日韩伦理片| 香蕉av777xxx色综合一区| 久久综合久久久久88| 欧美日韩的一区二区| 国产精品日韩在线一区| 午夜精品成人在线视频| 久久久久久久久久久成人| 欧美韩日一区| 国产欧美成人| 亚洲精品在线二区| 午夜一区在线| 欧美成人精品激情在线观看| 一本色道久久88综合日韩精品| 亚洲砖区区免费| 欧美国产第一页| 国产日韩一区二区三区在线播放| 亚洲第一色在线| 午夜精品福利一区二区蜜股av| 老司机成人在线视频| 99re成人精品视频| 久久在线免费视频| 国产精品久久中文| 亚洲人成欧美中文字幕| 欧美资源在线| 亚洲每日在线| 老司机午夜精品视频| 国产精品视频内| 亚洲麻豆视频| 麻豆av一区二区三区| 亚洲伊人网站| 欧美日韩一区二区在线观看| 激情综合久久| 欧美亚洲色图校园春色| 亚洲欧洲三级电影| 久久久久国产精品人| 国产精品亚洲а∨天堂免在线| 欧美色图首页| 国内精品伊人久久久久av影院 | 久久婷婷亚洲| 在线一区免费观看| 欧美激情在线| 亚洲风情在线资源站| 久久久久国产精品一区| 亚洲视频高清| 欧美三日本三级三级在线播放| 亚洲娇小video精品| 欧美 日韩 国产 一区| 欧美中文日韩| 国内成+人亚洲| 欧美一级电影久久| 亚洲午夜精品久久久久久app| 欧美激情第10页| 亚洲日本中文字幕免费在线不卡| 老鸭窝91久久精品色噜噜导演| 亚洲专区欧美专区| 国产精品露脸自拍| 午夜精品福利电影| 亚洲在线一区二区三区| 欧美人体xx| 在线一区观看| 一区二区三区鲁丝不卡| 欧美体内she精视频在线观看| 一区二区三区欧美视频| 日韩特黄影片| 国产精品久久久免费| 亚洲男人的天堂在线| 亚洲五月婷婷| 国产欧美日韩在线播放| 久久久精品一区二区三区| 久久aⅴ国产紧身牛仔裤| 狠久久av成人天堂| 蜜桃av一区二区三区| 欧美bbbxxxxx| 中日韩男男gay无套| 99在线热播精品免费99热| 国产精品毛片va一区二区三区| 亚洲欧美综合v|