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

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個矩形的2n個坐標,求矩形的覆蓋面積。如果開一個大的bool數組,將覆蓋過的部分更新為true,再從頭到尾掃描一遍,在坐標范圍比較小的情況下,可以求解。但是如果坐標x,y的取值范圍很大,比如[-10^8,10^8],用上面這個方法就不能求解了;而且坐標還有可能是實數,上面的方法就更加不可行了,需要尋找一種新的解法,就是下面要說到的“離散化”。
    注意到要表示一個矩形,只需要知道其2個頂點的坐標就可以了(最左下,最右上)??梢杂?個數組x[0...2n-1],y[0...2n-1]記錄下矩形Ri的2個坐標(x1,y1),(x2,y2),然后將數組x[0...xn-1],y[0...2n-1]排序,為下一步的掃描線作準備,這就是離散化的思想。這題還可以用線段樹做進一步優化,但是這里只介紹離散化的思想。
    看下面這個例子:有2個矩形(1,1),(3,3)和(2,2),(4,4)。如圖:
    圖中虛線表示掃描線,下一步工作只需要將這2個矩形覆蓋過的部分的bool數組的對應位置更新為true,接下去用掃描線從左到右,從上到下掃描一遍,就可以求出矩形覆蓋的總面積。
    這個圖對應的bool數組的值如下:
    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 極限定律 閱讀(739) 評論(0)  編輯 收藏 引用 所屬分類: ACM/ICPC

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

導航

統計

常用鏈接

留言簿(10)

隨筆分類

隨筆檔案

友情鏈接

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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嫩草影院| 欧美成人午夜免费视在线看片| 性高湖久久久久久久久| 午夜在线不卡| 欧美一区视频在线| 久久天天躁夜夜躁狠狠躁2022 | 免费在线国产精品| 免费视频亚洲| 亚洲人成毛片在线播放| 猛男gaygay欧美视频| 欧美成人自拍| 欧美精品18videos性欧美| 尤妮丝一区二区裸体视频| 欧美三级免费| 国产欧美韩日| 在线成人黄色| 99精品黄色片免费大全| 亚洲欧美日韩精品一区二区| 欧美一区二区三区的| 免费观看不卡av| 日韩视频免费观看| 欧美一区在线看| 欧美美女bbbb| 国产在线高清精品| 亚洲第一在线综合网站| 亚洲综合精品自拍| 亚洲第一精品在线| 亚洲一区二区在线播放| 欧美电影在线| 亚洲激情视频网站| 亚洲视频在线看| 久久一区二区三区四区| 日韩一级视频免费观看在线| 久久久999精品免费| 欧美人在线视频| 黄色精品一区| 亚洲自拍偷拍色片视频| 男人的天堂成人在线| 亚洲一区二区黄色| 欧美88av| 韩国欧美一区| 亚洲女ⅴideoshd黑人| 免费亚洲电影在线| 亚洲欧美第一页| 欧美性淫爽ww久久久久无| 亚洲高清成人| 蜜臀av在线播放一区二区三区| 亚洲色图在线视频| 欧美精品一区视频| 亚洲国产福利在线| 久久久综合网站| 午夜激情综合网| 国产精品性做久久久久久| 99视频日韩| 91久久在线视频| 免费亚洲电影在线观看| 亚洲风情亚aⅴ在线发布| 久久精品国产亚洲aⅴ| 亚洲女优在线| 国产情人综合久久777777| 午夜精品福利电影| 亚洲综合日韩在线| 国产精品一二三视频| 性久久久久久久| 午夜欧美精品| 一区二区亚洲欧洲国产日韩| 蜜桃av噜噜一区二区三区| 久久久久久亚洲精品杨幂换脸 | 亚洲久久在线| 欧美乱人伦中文字幕在线| 亚洲美女少妇无套啪啪呻吟| 欧美激情亚洲一区| 女人色偷偷aa久久天堂| 亚洲人成人77777线观看| 欧美黄色aaaa| 欧美日韩日本国产亚洲在线| 亚洲一区二区在线看| 一区二区免费在线播放| 国产精品视频内| 久久综合五月| 欧美精品18videos性欧美| 亚洲在线视频免费观看| 亚洲欧美日韩在线观看a三区| 国产日韩成人精品| 美女福利精品视频| 欧美激情在线免费观看| 一区二区三区成人精品| 国产精品入口| 午夜久久久久久久久久一区二区| 亚洲精选大片| 亚洲视频一区二区| 影音先锋日韩精品| 黄色成人av网| 欧美国产日韩在线| 欧美日韩亚洲一区| 亚洲一区综合| 欧美日韩一区二区三区在线看 | 亚洲在线免费| 亚洲综合大片69999| 亚洲一区二区在线观看视频| 欧美主播一区二区三区美女 久久精品人| 国产精品久久久久久影视 | 亚洲视频久久| 欧美亚洲一级片| 日韩西西人体444www| 欧美一区午夜精品| 亚洲永久免费| 欧美黑人国产人伦爽爽爽| 久久大逼视频| 欧美性做爰毛片| 91久久精品国产91久久| 国产一区二区三区高清播放| 亚洲美女视频在线观看| 在线精品一区| 欧美影院成人| 欧美一站二站| 国产精品久久97| 亚洲欧洲精品一区| 亚洲国产婷婷香蕉久久久久久99| 亚洲欧美日韩爽爽影院| 亚洲一区二区成人在线观看| 欧美成人免费全部| 免费在线观看日韩欧美| 国产小视频国产精品| 亚洲色图制服丝袜| 一区二区三区视频观看| 男女精品视频| 蜜乳av另类精品一区二区| 国产精品视频yy9099| 影音先锋日韩有码| 亚洲一区二区三区在线| 日韩一级二级三级| 欧美激情中文不卡| 亚洲日韩视频| 99v久久综合狠狠综合久久| 欧美 日韩 国产 一区| 免费观看成人网| 亚洲成色999久久网站| 欧美一区二区三区久久精品茉莉花 | 亚洲国产精品久久久久秋霞影院| 韩国成人精品a∨在线观看| 午夜精品亚洲| 久久国产黑丝| 激情综合久久| 老鸭窝亚洲一区二区三区| 欧美va亚洲va国产综合| 亚洲电影免费观看高清完整版| 久久九九国产精品| 你懂的视频一区二区| 最新成人在线| 欧美日韩另类在线| 亚洲在线观看| 久久综合国产精品台湾中文娱乐网| 韩国女主播一区| 久久综合国产精品| 亚洲毛片在线免费观看| 亚洲资源在线观看| 国产综合18久久久久久| 免费成人美女女| 99视频热这里只有精品免费| 亚洲欧美精品一区| 国产伊人精品| 另类图片国产| 99国产精品久久久久久久久久| 香蕉乱码成人久久天堂爱免费| 国产精品一区免费视频| 久久天堂av综合合色| 99re在线精品| 久久久久久久久伊人| 亚洲国产精品一区二区第一页 | 精品成人一区二区三区四区| 欧美凹凸一区二区三区视频| 亚洲深夜福利视频| 久久综合久久综合九色| 亚洲天堂成人| 亚洲第一福利社区| 国产精品国产三级国产aⅴ入口| 久久激情久久| 中文高清一区| 亚洲国产精品精华液2区45| 久久国产一区| 中文一区二区在线观看| 一区在线免费观看| 国产精品日韩二区| 欧美国产欧美综合| 久久xxxx精品视频| 亚洲天堂免费在线观看视频| 亚洲电影网站| 麻豆国产va免费精品高清在线| 亚洲一区二区三区四区在线观看 | 黄色日韩在线| 国产精品欧美日韩一区二区| 免费国产一区二区| 久久狠狠久久综合桃花| 亚洲免费视频网站| 日韩亚洲视频| 亚洲国产欧美在线人成| 国产日韩综合|