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

            oyjpArt ACM/ICPC算法程序設計空間

            // I am new in programming, welcome to my blog
            I am oyjpart(alpc12, 四城)
            posts - 224, comments - 694, trackbacks - 0, articles - 6
            1.點積Dot Product Cos(θ) = (A ⋅ B)/(|A||B|) so we can get angle θ by acos function , θ 是A,B的夾角 沒有正負
             
            2.叉積Cross Product  A x B = |A||B|Sin(θ) , θ 的正負由A,B的右手定則決定
            其值同時代表A,B形成的平行四邊形的面積
             
            3.線段與點之間距離Line-Point Distance L = | (AB x AC)/|AB| |其中L是從C到A,B這條直線的距離 因為AB x AC/2是ABC形成的三角形面積 而三角形面積也等于|AB|*L/2 注意根據cross product的定義 L值應該取絕對值
             
            4.求垂直平分線 首先構造AB的方程 Ax+By=C 則平分線方程為 -Bx+Ay=D 把AB的中點代入進去就得到了D
             
            5.求3點共圓 A,B,C 首先做出 AB 和 BC的平分線 求出交點o 則交點o就是圓心 而 dis(o, B)就是半徑

            6.求點A相對一直線L的對面點B 首先得到AB的方程 根據A點坐標求出AB的方程 再求出AB與L的交點Y 接著就是A' = 2 * Y - X
             
            7.求50000個點的最遠距離 先用NlogN的算法求凸包 再枚舉點距
             
            8.判斷一個點是否在一個多邊形內 可以沿這個點做一條射線 然后判斷這個點與其他邊的交點的個數 如果是偶數則在外部 如果為奇數 則在里面 如果在邊界 可以用點線距為0來判斷
             
            9.球坐標轉化成立體坐標   
                double x = sin(lng/180*PI)*cos(lat/180*PI)*alt;
                double y = cos(lng/180*PI)*cos(lat/180*PI)*alt;
                double z = sin(lat/180*PI)*alt;
            2.關于凸包的題目

            gift-Wrapping算法復雜度O(n^2)很慢
            Gram-Scan算法復雜度為O(NlogN) 但是極角序存在一些問題 所以最好寫成水平序

            Melkan算法是對于多邊形的凸包算法 效率為O(N) 但是對于點集首先要用排序將其轉化成多邊形(復雜度為(NlogN)) 不實用

            如果點是有限制的 比如0 <= x,y <= N 則可以現用maxy[x], miny[x]來保存縱坐標的最大值 和 最小值 顯然只有這些點才可能出現在凸包上面 然后使用Graham-Scan算法按橫坐標從小到大排序求凸包即可(藍書P8) 這樣排序的時間從nlogn 變成N

            1.怎樣由凸包上面的點確定最大的三角形面積?
            枚舉每一個點a
              定下b點為a+1 c為a+2
                移動c點直到面積不再增加(因為是凸多邊形 故面積呈現先增后減序列)
                  移動b點在a,c之間 直到面積不再增加
                

            Feedback

            # re: 總結一下最近做的計算幾何學到的知識  回復  更多評論   

            2007-05-28 13:25 by eyye
            我對凸包算法很感興趣,我正在做的Plot3D ( http://eyye.cnblogs.com )在構造多面體時就是在進行凸包計算。

            # re: 總結一下最近做的計算幾何學到的知識  回復  更多評論   

            2007-05-28 14:54 by oyjpart
            呵呵 確實好玩 不過我不是很懂。。呵呵~~

            # re: 總結一下最近做的計算幾何學到的知識  回復  更多評論   

            2007-06-10 12:39 by 星夢情緣
            凸包是什么啊,我是新手,樓主能解釋一下嗎???

            # re: 總結一下最近做的計算幾何學到的知識  回復  更多評論   

            2007-06-10 17:54 by oyjpart
            我的理解很粗淺哎 我覺得就是對于平面內離散的點集S
            凸包就是S的一個子集S1形成的一個凸多邊形 使所有的點都包含在這個凸包C或在C的邊上

            # re: 總結一下最近做的計算幾何學到的知識  回復  更多評論   

            2007-08-12 18:16 by mb
            樓主,最后一個三角形面積能解釋一下嗎?為什么這么做就行了?

            # re: 總結一下最近做的計算幾何學到的知識  回復  更多評論   

            2007-08-13 09:18 by oyjpart
            就是因為凸多邊形是凸的 所以如果你確定兩點移第三點會出現先增后減
            久久无码精品一区二区三区| 无码人妻久久一区二区三区 | 久久人妻少妇嫩草AV无码蜜桃| 99久久精品免费看国产| 国产免费福利体检区久久| 久久频这里精品99香蕉久| 一本久久a久久精品亚洲| 一级做a爱片久久毛片| 久久笫一福利免费导航| 久久久综合九色合综国产| 日韩欧美亚洲国产精品字幕久久久| 亚洲AV日韩精品久久久久久 | 欧美久久亚洲精品| 天天躁日日躁狠狠久久| 久久精品女人天堂AV麻| 久久精品中文字幕久久| 午夜精品久久久久久毛片| 久久久久国色AV免费观看| MM131亚洲国产美女久久| 亚洲日本久久久午夜精品| 国产激情久久久久影院小草| 久久久久亚洲AV无码专区体验 | 成人国内精品久久久久一区| 久久久久久国产精品美女| 国产精品青草久久久久福利99| 97久久综合精品久久久综合| 蜜臀av性久久久久蜜臀aⅴ| 三级三级久久三级久久| 香蕉aa三级久久毛片| 久久亚洲视频| 欧美午夜A∨大片久久 | 久久久国产精品福利免费| 国产美女久久精品香蕉69| 97久久精品人人澡人人爽| 亚洲AV无码久久精品蜜桃| 污污内射久久一区二区欧美日韩| 99久久精品国产一区二区| 伊人丁香狠狠色综合久久| 久久精品国产一区| 99久久成人18免费网站| 蜜桃麻豆www久久|