• <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
            就是因為凸多邊形是凸的 所以如果你確定兩點移第三點會出現先增后減
            日韩人妻无码一区二区三区久久| 精品人妻伦九区久久AAA片69 | 99久久亚洲综合精品网站| 久久精品国产亚洲AV无码偷窥| 精品久久久久久亚洲| 日韩一区二区三区视频久久| 无码久久精品国产亚洲Av影片| 久久美女网站免费| 欧美国产成人久久精品| 国产午夜精品理论片久久影视 | 久久国产精品99国产精| 91久久国产视频| 欧美噜噜久久久XXX| 久久综合久久鬼色| 国产成人无码久久久精品一| 亚洲人成无码www久久久| 91精品国产91久久久久久蜜臀| 久久精品视频一| 久久久久久国产精品免费免费| 久久综合香蕉国产蜜臀AV| 亚洲精品tv久久久久久久久久| 91久久精品国产91性色也| 国产精品国色综合久久| 成人午夜精品无码区久久| 久久久久九九精品影院| 青青草原综合久久| 九九久久99综合一区二区| 久久亚洲精品无码AV红樱桃| 欧美激情一区二区久久久| 亚洲人成网站999久久久综合| 久久av高潮av无码av喷吹| 久久免费美女视频| 99热都是精品久久久久久| 国产精品久久国产精麻豆99网站| 蜜臀av性久久久久蜜臀aⅴ| 精品久久久久久国产| 无码人妻久久久一区二区三区| 久久99九九国产免费看小说| 久久人人爽人人爽人人爽 | 久久99国产精品久久99果冻传媒| 久久99精品久久久久婷婷|