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

            我希望你是我獨家記憶

            一段永遠(yuǎn)封存的記憶,隨風(fēng)而去
            posts - 263, comments - 31, trackbacks - 0, articles - 3
               :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

            USACO522

            Posted on 2008-10-06 22:05 Hero 閱讀(118) 評論(0)  編輯 收藏 引用 所屬分類: 代碼如詩--ACM
              1 /*
              2 ID: wangzha4
              3 LANG: C++
              4 TASK: fence3
              5 */
              6 
              7 /*迭代--模擬退火
              8 Executing
              9    Test 1: TEST OK [0.011 secs, 2716 KB]
             10    Test 2: TEST OK [0.011 secs, 2716 KB]
             11    Test 3: TEST OK [0.011 secs, 2716 KB]
             12    Test 4: TEST OK [0.000 secs, 2720 KB]
             13    Test 5: TEST OK [0.011 secs, 2720 KB]
             14    Test 6: TEST OK [0.022 secs, 2720 KB]
             15    Test 7: TEST OK [0.000 secs, 2716 KB]
             16    Test 8: TEST OK [0.011 secs, 2716 KB]
             17    Test 9: TEST OK [0.000 secs, 2716 KB]
             18    Test 10: TEST OK [0.000 secs, 2716 KB]
             19    Test 11: TEST OK [0.000 secs, 2720 KB]
             20    Test 12: TEST OK [0.011 secs, 2716 KB]
             21 */
             22 #include <stdio.h>
             23 #include <stdlib.h>
             24 #include <math.h>
             25 
             26 const int itimes =50 ;
             27 const int size = 160 ;
             28 const double change = 30 ;
             29 
             30 struct Point
             31 {
             32     int x ; 
             33     int y ;
             34 };
             35 struct Point sn[size], en[size] ;
             36 
             37 const int xdir[4= { 01,  0-1 } ;
             38 const int ydir[4= { 10-1,  0 } ;//xy方向
             39 
             40 int inn ;
             41 double ansx ; double ansy ;
             42 double bestdist ;
             43 
             44 void swap( int &a, int &b )
             45 {
             46     int temp = a ; a = b ; b = temp ;
             47 }
             48 
             49 double fmin( double a, double b )
             50 {
             51     return a < b ? a : b ;
             52 }
             53 
             54 double fdist( double x1, double y1, double x2, double y2 )
             55 {
             56     return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ) ;
             57 }
             58 
             59 void input()
             60 {
             61     forint i=1; i<=inn; i++ )
             62     {
             63         scanf( "%d %d"&sn[i].x, &sn[i].y ) ;
             64         scanf( "%d %d"&en[i].x, &en[i].y ) ;
             65         if( sn[i].x > en[i].x ) swap( sn[i].x, en[i].x ) ;
             66         if( sn[i].y > en[i].y ) swap( sn[i].y, en[i].y ) ;
             67     }
             68 }
             69 
             70 double comdist( double x, double y )
             71 {
             72     double reval = 0 ;
             73     forint i=1; i<=inn; i++ )
             74     {
             75         if( x>sn[i].x && x<en[i].x ) reval += fabs( y-sn[i].y ) ;
             76         else if( y>sn[i].y && y<en[i].y ) reval += fabs( x-sn[i].x ) ;
             77         else reval += fmin( fdist(x,y,sn[i].x,sn[i].y), fdist(x,y,en[i].x,en[i].y) ) ;
             78     }
             79 
             80     return reval ;
             81 }
             82 
             83 void process()
             84 {
             85     ansx = ansy = 0 ;//初始化節(jié)點坐標(biāo)為(0, 0)
             86     double xchange = change ; double ychange = change ;//初始化迭代量為20
             87     bestdist = comdist( ansx, ansy ) ; int bestdir = -1 ;
             88 
             89     forint i=1; i<=itimes; i++ )
             90     {
             91         if0 == i % 10 ) 
             92         {
             93             xchange = xchange * 0.1 ; ychange = ychange * 0.1 ;
             94         }
             95         bestdir = -1 ;//初始化最優(yōu)方向
             96         forint d=0; d<4; d++ )//向4個方向擴展
             97         {
             98             double tempx = ansx + xchange * xdir[d] ;
             99             double tempy = ansy + ychange * ydir[d] ;
            100 
            101             double curdist = comdist( tempx, tempy ) ;
            102             if( curdist < bestdist ) { bestdist = curdist ; bestdir = d ; }
            103         }
            104         if( bestdir != -1 ) 
            105         {
            106             ansx += xchange * xdir[bestdir] ; ansy += ychange * ydir[bestdir] ;
            107         }
            108         bestdist = comdist( ansx, ansy ) ;
            109     }
            110 }
            111 
            112 void output()
            113 {
            114     printf( "%0.1lf %0.1lf %0.1lf\n", ansx, ansy, bestdist ) ;
            115 }
            116 
            117 int main()
            118 {
            119     freopen( "fence3.in""r", stdin ) ;
            120     freopen( "fence3.out","w",stdout ) ;
            121 
            122     while( scanf( "%d"&inn ) != EOF )    
            123     {
            124         input() ;
            125 
            126         process() ;
            127 
            128         output() ;
            129     }
            130 
            131     return 0 ;
            132 }
            97视频久久久| 国产精品久久久久乳精品爆| 欧洲性大片xxxxx久久久| 国内精品伊人久久久影院| 2021国内精品久久久久久影院| 久久综合亚洲欧美成人| 久久噜噜久久久精品66| 浪潮AV色综合久久天堂| 精品视频久久久久| 久久精品一区二区影院| 久久不射电影网| 久久精品中文騷妇女内射| 精品久久久久久国产| 久久只这里是精品66| 久久AAAA片一区二区| 麻豆一区二区99久久久久| 久久伊人五月天论坛| 丰满少妇人妻久久久久久| 99精品久久久久中文字幕| 国产成人久久激情91| 久久亚洲精品成人无码网站 | 久久乐国产精品亚洲综合| 日韩精品久久无码中文字幕| 久久精品国产亚洲Aⅴ香蕉| 97久久国产亚洲精品超碰热| 久久国产精品偷99| 久久精品国产91久久麻豆自制| 久久久女人与动物群交毛片| 国产精品久久久香蕉| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久青青草原国产精品免费| 久久久亚洲欧洲日产国码二区 | 亚洲精品高清国产一线久久| 久久久久久久免费视频| 四虎国产精品免费久久久| 久久人爽人人爽人人片AV| 国产色综合久久无码有码| 99久久中文字幕| 国产美女久久久| 国产精品亚洲美女久久久| 国产精品青草久久久久福利99|