• <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>
            先按規(guī)則連。規(guī)則是隔一段連一個(gè)。比如一條直線上有6個(gè)點(diǎn),就1-2,3-4,5-6,這么連。如果只有奇數(shù)個(gè)點(diǎn),就不行。然后再判有沒(méi)有洞。
            方法是任選一個(gè)點(diǎn),走一圈,看看是否遍歷所有的點(diǎn)。


            #include <iostream>

            using namespace std;

            const int MAXN=100010;

            typedef 
            struct {
                
            int x,y,id;
            }
             point_t;

            int cmp_x(const point_t &a,const point_t &b) {
                
            return a.x<b.x || a.x==b.x && a.y<b.y;
            }


            int cmp_y(const point_t &a,const point_t &b) {
                
            return a.y<b.y || a.y==b.y && a.x<b.x;
            }


            point_t p[MAXN];
            int c[MAXN][2];

            int main() {
                
            int ca,n,i;
                
            for (scanf("%d",&ca);ca--;) {
                    scanf(
            "%d",&n);
                    
            for (i=0;i<n;i++{
                        scanf(
            "%d%d",&p[i].x,&p[i].y);
                        p[i].id
            =i;
                    }

                    
                    
            int ans=0,flag=1;
                    
                    sort(p,p
            +n,cmp_x);
                    
            int cnt=1;
                    
            for (i=1;i<n;i++{
                        
            if (p[i].x!=p[i-1].x) {
                            
            if (cnt&1) flag=0;
                            cnt
            =1;
                        }

                        
            else {
                            cnt
            ++;
                            
            if ((cnt&1)==0{
                                ans
            +=p[i].y-p[i-1].y;
                                c[p[i].id][
            0]=p[i-1].id;
                                c[p[i
            -1].id][0]=p[i].id;
                            }

                        }

                    }

                    
                    sort(p,p
            +n,cmp_y);
                    cnt
            =1;
                    
            for (i=1;i<n;i++{
                        
            if (p[i].y!=p[i-1].y) {
                            
            if (cnt&1) flag=0;
                            cnt
            =1;
                        }

                        
            else {
                            cnt
            ++;
                            
            if ((cnt&1)==0{
                                ans
            +=p[i].x-p[i-1].x;
                                c[p[i].id][
            1]=p[i-1].id;
                                c[p[i
            -1].id][1]=p[i].id;
                            }

                        }

                    }

                    
                    
            //check connect
                    int p=1,x=0,cc=0;
                    
            do {
                        x
            =c[x][p];
                        p
            =1-p;
                        cc
            ++;
                    }
             while (x!=0);
                    
            if (cc!=n) flag=0;
                    
                    
            if (!flag) printf("-1\n");
                    
            else printf("%d\n",ans);
                }

                
            return 0;
            }
            posted on 2007-10-22 14:06 Felicia 閱讀(613) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): 計(jì)算幾何
            Comments
            • # re: [計(jì)算幾何]pku3293
              la
              Posted @ 2009-08-20 03:23
              請(qǐng)問(wèn)一下大牛。。其實(shí)pku上面有人問(wèn)過(guò)這個(gè)問(wèn)題。。但是好像還是沒(méi)法解決。。就是下面這組數(shù)據(jù)所代表的這一種情況到底要不要加特判。。我按照您的意思寫(xiě)了程序。。可是就是不能AC。。您覺(jué)得可能是什么原因?
              1
              8
              1 1
              1 3
              2 0
              2 2
              3 1
              3 2
              4 0
              4 3
                回復(fù)  更多評(píng)論   
             
            性高湖久久久久久久久| 久久香蕉国产线看观看乱码| 日日狠狠久久偷偷色综合96蜜桃| 欧美日韩精品久久久免费观看| 久久综合亚洲色HEZYO社区| 狠狠综合久久综合88亚洲| 国产精品一久久香蕉国产线看| 久久一区二区三区免费| 狠狠色丁香久久综合五月| 99久久免费国产精品特黄| 99久久久精品| 狠狠色丁香久久婷婷综合蜜芽五月| 1000部精品久久久久久久久| 一级做a爰片久久毛片毛片 | 久久久久久久波多野结衣高潮 | 久久精品国产第一区二区三区| 久久久久国产精品麻豆AR影院| 久久久久无码精品国产| 欧美成人免费观看久久| 久久精品国产WWW456C0M| 国产精品久久久久影院嫩草| 午夜天堂精品久久久久| 亚洲欧美国产日韩综合久久| 中文字幕亚洲综合久久| 国产精品无码久久综合| 伊人久久大香线蕉AV色婷婷色| 无夜精品久久久久久| 女同久久| 看全色黄大色大片免费久久久| 日本道色综合久久影院| 99久久99久久| 久久最近最新中文字幕大全| 狠狠色丁香婷婷久久综合不卡| 久久超乳爆乳中文字幕| 国产高潮国产高潮久久久| 久久亚洲精品国产精品| 欧美熟妇另类久久久久久不卡| 国产亚洲精品久久久久秋霞| 亚洲国产精品无码久久98| 伊人久久大香线蕉av一区| 无码人妻精品一区二区三区久久久|