• <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>

            pku1788 Building a New Depot 排序+線掃

            簡要描述下題意,一個柵欄圍了一塊地,柵欄只能東西方向或者南北方向放置,柵欄接頭處有一個節(jié)點,節(jié)點僅僅存在于東西方向柵欄與南北方向柵欄之間,給出節(jié)點的坐標,求柵欄的周長。
            這道題由于柵欄的特殊性,可以排序+線掃解決。
            對東西方向和南北方向的柵欄分別考慮:
            對于東西方向的柵欄,先對節(jié)點坐標按照y坐標排序,如果y坐標相等按照x坐標排序。
            線性掃描數(shù)組,假設y=y1的節(jié)點從k1到k2,那么此段柵欄的長度為k1~k1+1,k1+2~k1+3...,原因很顯然,柵欄的節(jié)點是按照x順序兩兩配對的。
            對于南北方向的柵欄類似處理。
            貼代碼:
             1 import java.io.*;
             2 import java.util.*;
             3 public class Main {
             4 
             5     /**
             6      * @param args
             7      */
             8     static class point
             9     {
            10         int x,y;
            11     }
            12     static class cmpx implements Comparator<point>
            13     {
            14         public int compare(point a,point b)
            15         {
            16             if(a.x!=b.x) return a.x-b.x;
            17             else return a.y-b.y;
            18         }
            19     }
            20     static class cmpy implements Comparator<point>
            21     {
            22         public int compare(point a,point b)
            23         {
            24             if(a.y!=b.y) return a.y-b.y;
            25             else return a.x-b.x;
            26         }
            27     }
            28     static point data[]=new point[100005];
            29     public static void main(String[] args) throws IOException{
            30         StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
            31         for(int i=0;i<data.length;i++)
            32             data[i]=new point();
            33         while(true)
            34         {
            35             in.nextToken();
            36             int num=(int)in.nval;
            37             if(num==0break;
            38             for(int i=0;i<num;i++)
            39             {
            40                 in.nextToken();
            41                 data[i].x=(int)in.nval;
            42                 in.nextToken();
            43                 data[i].y=(int)in.nval;
            44             }
            45             int len=0;
            46             Arrays.sort(data,0,num,new cmpx());
            47             int last=0;
            48             for(int i=1;i<num;i++)
            49               if(data[i].x==data[i-1].x) continue;
            50               else
            51               {
            52                   for(int j=last;j<i;j+=2)
            53                       len+=data[j+1].y-data[j].y;
            54                   last=i;
            55               }
            56             for(int j=last;j<num;j+=2)
            57                   len+=data[j+1].y-data[j].y;
            58             Arrays.sort(data,0,num,new cmpy());
            59             last=0;
            60             for(int i=1;i<num;i++)
            61                 if(data[i].y==data[i-1].y) continue;
            62                 else
            63                 {
            64                     for(int j=last;j<i;j+=2)
            65                           len+=data[j+1].x-data[j].x;
            66                     last=i;
            67                 }
            68             for(int j=last;j<num;j+=2)
            69                   len+=data[j+1].x-data[j].x;
            70             System.out.println("The length of the fence will be "+len+" units.");
            71         }
            72 
            73     }
            74 
            75 }
            76 


            posted on 2010-10-22 01:49 yzhw 閱讀(230) 評論(0)  編輯 收藏 引用 所屬分類: search

            <2010年12月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            導航

            統(tǒng)計

            公告

            統(tǒng)計系統(tǒng)

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            97久久精品人人做人人爽| 精品久久久无码人妻中文字幕豆芽| 久久综合偷偷噜噜噜色| 久久精品国产一区二区三区| 色综合久久久久| 亚洲综合精品香蕉久久网97| 久久国产精品国产自线拍免费| 91精品国产综合久久精品| 国产精品青草久久久久婷婷 | 99蜜桃臀久久久欧美精品网站| 久久综合精品国产一区二区三区 | 久久久久av无码免费网| 精品久久人人爽天天玩人人妻| 亚洲第一永久AV网站久久精品男人的天堂AV | 无码人妻久久一区二区三区免费 | 亚洲精品国产美女久久久| 色综合久久久久久久久五月| 国内精品久久久久影院一蜜桃| 久久99精品国产99久久6| 精品久久久久久久无码| 精品久久久久香蕉网| 97久久香蕉国产线看观看| 国产精品18久久久久久vr | 无码人妻久久一区二区三区免费丨| 亚洲午夜久久久久久久久电影网| 久久99久国产麻精品66| 2021精品国产综合久久| 色偷偷91久久综合噜噜噜噜| 99久久国产精品免费一区二区| 少妇内射兰兰久久| 国产毛片久久久久久国产毛片| 亚洲精品第一综合99久久| 久久精品国产久精国产思思| 蜜桃麻豆www久久国产精品| 久久精品无码午夜福利理论片| 99久久精品国产一区二区蜜芽| 日产精品久久久久久久| 久久香蕉国产线看观看99| 免费无码国产欧美久久18| 国产精品岛国久久久久| 亚洲欧美伊人久久综合一区二区|