• <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>
            posts - 11, comments - 2, trackbacks - 0, articles - 0

            Waterloo local 2000.01.29

            Posted on 2009-02-10 17:04 hello_world 閱讀(1213) 評論(0)  編輯 收藏 引用
            Waterloo local 2000.01.29
              題目分類
             Y2K Accounting Bug  最優(yōu)局面(math)
             Airline Hub  球面距離(geometry)
             Snakes  圖論,聯(lián)通性
            Snap 模擬
            Steps 分析 (math)

             Y2K Accounting Bug :
            一年12個月中任意連續(xù)的5個月都是赤字,每月要么盈利 s ,要么虧蝕 d, 求這一年可能的最大盈利

            對于一個給定的 s 和 d,我們只要讓虧損的月份盡量少,而實際上存在固定的最優(yōu)局面
            分類討論每種情況的最優(yōu)局面, 一共有五種(O表示虧  。表示盈)
            。。。。O虧,則 。。。。O。。O。。。。為最優(yōu)局面
            。。。OO虧,則 。。。OO。。OO。。。為最優(yōu)局面
            。。OOO虧,則 。。OOO。。OOO。。為最優(yōu)局面
            。OOOO虧,則 。OOOOO。OOOO。為最優(yōu)局面
            OOOOO虧, 必虧
             



            Airline Hub :
            0ms的不知道怎么做的,我是暴力做法500ms
            這里只提一下球面距的求解方法, 先將經(jīng)緯度化成角度,再把角度化成直角坐標,用余弦公式計算兩半徑夾角q, 再求出弧長 l = r*q;
            在計算角度時, 中間過程既乘了 r^2 又 除了 r^2所以約去了

            附上代碼
             1 double dis(double la1, double lo1, double la2, double lo2, double r)
             2 //la1 lo1為第一個點的緯度,經(jīng)度
             3 {
             4     point p[2];
             5     double ang[2][2];
             6     double la[2]={la1, la2}, lo[2]={lo1, lo2};
             7     int i;
             8     for(i = 0;  i <  2; i++)
             9     {
            10         ang[i][0]=la[i]/180*pi;
            11         ang[i][1]=lo[i]/180*pi;
            12         p[i].z=sin(ang[i][0]);                       //本應該乘于r
            13         p[i].x=cos(ang[i][0])*cos(ang[i][1]);
            14         p[i].y=cos(ang[i][0])*sin(ang[i][1]); 
            15     }
            16     return r * acos(p[0].x*p[1].x+p[0].y*p[1].y+p[0].z*p[1].z); //本應該除于r*r
            17 }
            18 


            Snakes:
            題目意思就不說了,這里主要說一下做法!
            我們把蛇連同它的攻擊范圍看做一個圓,再把圓抽象成一個點!點與點之間有邊連接僅當兩個點代表的圓有公共面積!然后我們在把上邊界和下邊界各抽象成一個點(S和T),同樣上邊界與點之間有邊連接僅當點代表的圓與上邊界相交,同理,可得下邊界與點之間的邊關系!
            這樣處理以后如果有從左到右的路徑,當且僅當不存在S到T通路!只要深搜或者廣搜即可!但是題目還要我們求出左右的坐標,只需確定縱坐標即可,而且縱坐標要最大!所以我們考慮與S連通的每一個點,如果該點代表的圓與左邊界有交點,那么如果從這個交點上面走一定走不過去,所以我們更新左邊的縱坐標到這個交點處,對所有的圓都這樣處理,即可確定左邊縱坐標,右邊的同理可求!而且這一步可以在求連通的時候隨便求出,我們只需從S出發(fā),一直搜即可!

            Snap:
            按照題意模擬(隨機數(shù)取 rand()/99%2)。注意贏來的牌是加在上面,不是加在下面的。
             
            Steps :
             這里首先能發(fā)現(xiàn) 加速的次數(shù) == 減速的次數(shù),也就是說如果不考慮勻速部分,并且最大速度為n,可以算出這種情況下能走的距離 s = n^2;
            再考慮勻速部分, 設dis為要求兩點距離
            顯然我需要找到一個n滿足 n*n<= dis < (n+1)*(n+1),最大速度一定為 n ,多余的部分即 leave = dis - n*n;
            leave /n 部分用最大速度勻速跑,leave % n 部分之需要中途勻速一秒就好


            国内精品久久久久久不卡影院| 亚洲国产精品久久久天堂| 久久久久亚洲AV无码网站| 婷婷久久久亚洲欧洲日产国码AV | 久久精品a亚洲国产v高清不卡| 久久精品国产亚洲AV不卡| 久久久久亚洲国产| 国产精品99精品久久免费| 国产综合成人久久大片91| 青青草原精品99久久精品66| 国产免费福利体检区久久| 久久SE精品一区二区| 97超级碰碰碰碰久久久久| 久久伊人精品一区二区三区| 国产精品久久久久一区二区三区| 波多野结衣久久一区二区| 精品久久人人做人人爽综合| 色欲av伊人久久大香线蕉影院| 国产精品99久久不卡| 久久亚洲AV成人无码电影| 久久人妻AV中文字幕| 久久中文字幕视频、最近更新| 国产精品一久久香蕉国产线看| 久久精品国产男包| 久久婷婷人人澡人人| 国产精品99久久久久久董美香| 久久国产色AV免费观看| 久久精品中文无码资源站| 国内精品伊人久久久久妇| 久久免费国产精品| 欧美成a人片免费看久久| 久久播电影网| 日日狠狠久久偷偷色综合免费 | 亚洲午夜无码AV毛片久久| 国产A级毛片久久久精品毛片| 久久精品中文无码资源站| 久久综合狠狠综合久久| 久久婷婷五月综合色奶水99啪| 无码人妻久久久一区二区三区| 亚洲AV无码久久精品蜜桃| 亚洲精品无码久久久久去q |