青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

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

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

PKU2504 Rounding Box

Posted on 2008-05-04 14:41 oyjpart 閱讀(2727) 評論(3)  編輯 收藏 引用 所屬分類: ACM/ICPC或其他比賽
前幾天的練習賽有一道計算幾何題,一向討厭計算幾何的我推了一下之后就沒做了。
后來比賽結束的時候發現他們都過了,后悔不已。故做了一下,求三角形外接圓圓心那個我使用
垂直平分線相交的那個做的。上次他們說有公式,我在書上找了個圓心公式,可是代進去不對。
估計是書上公式寫錯了...
 Bounding box
Time Limit: 1.0 Seconds   Memory Limit: 65536K
Total Runs: 28   Accepted Runs: 14    Multiple test files



The Archeologists of the Current Millenium (ACM) now and then discover ancient artifacts located at vertices of regular polygons. The moving sand dunes of the desert render the excavations difficult and thus once three vertices of a polygon are discovered there is a need to cover the entire polygon with protective fabric.

Input contains multiple cases. Each case describes one polygon. It starts with an integer n ≤ 50, the number of vertices in the polygon, followed by three pairs of real numbers giving the x and y coordinates of three vertices of the polygon. The numbers are separated by whitespace. The input ends with a n equal 0, this case should not be processed.

For each line of input, output one line in the format shown below, giving the smallest area of a rectangle which can cover all the vertices of the polygon and whose sides are parallel to the x and y axes.

Sample input

4
10.00000 0.00000
0.00000 -10.00000
-10.00000 0.00000
6
22.23086 0.42320
-4.87328 11.92822
1.76914 27.57680
23
156.71567 -13.63236
139.03195 -22.04236
137.96925 -11.70517
0

Output for the sample input

Polygon 1: 400.000
Polygon 2: 1056.172
Polygon 3: 397.673

// solution by alpc12
#include <cstdio>
#include <cmath>

const double EPS = 1e-8;
const double PI = acos(-1.0);
const double INF = 1e100;

#define Min(a, b) (a<b?a:b)
#define Max(a, b) (a>b?a:b)

struct Point {
    double x;
    double y;
    Point() {}
    Point(double xx, double yy) {
        x = xx;
        y = yy;
    }
};

struct Line {
    double a, b, c;
    Point st, end;
    Line() {}
    Line(Point& u, Point& v) {
        st = u;
        end = v;
        a = v.y - u.y;
        b = u.x - v.x;
        c = a*u.x + b*u.y;
    }
};

#define sqr(a) ((a)*(a))
#define dist(a, b) (sqrt( sqr((a).x-(b).x)+sqr((a).y-(b).y) ))
#define cross(a, b, c)  (((b).x-(a).x)*((c).y-(a).y)-((b).y-(a).y)*((c).x-(a).x))

inline int dblcmp(double a, double b = 0.0) {
    if(fabs(a-b) < EPS) return 0;
    return a < b ? -1 : 1;
}

Line bisector(Point& a, Point& b) {
    Line line(a, b), ans;    
    double midx = (a.x+b.x)/2, midy = (a.y+b.y)/2;
    ans.a = -line.b, ans.b = line.a, ans.c = ans.a*midx + ans.b*midy;
    return ans;
}

int line_line_intersect(Line& l1, Line& l2, Point& s) {
    double det = l1.a * l2.b - l2.a * l1.b;
    if(dblcmp(det) == 0) {
        return -1;
    }
    s.x = (l2.b*l1.c - l1.b*l2.c) / det;
    s.y = (l1.a*l2.c - l2.a*l1.c) / det;
    return 1;
}

int center_3point(Point& a, Point& b, Point& c, Point& s, double& r) {
    Line x = bisector(a, b), y = bisector(b, c);
    if(line_line_intersect(x, y, s) == 1) {
        r = dist(s, a);
        return 1;
    }
    return 0;
}

Point p[55];

int main() {

    //freopen("t.in", "r", stdin);

    int i, n, tc = 0;
    Point cent;
    while(scanf("%d", &n), n) {
        for(i = 0; i < 3; ++i) scanf("%lf %lf ", &p[i].x, &p[i].y);
        double r;
        if(center_3point(p[0], p[1], p[2], cent, r) == 1) {
            for(i = 0; i < 3; ++i)
                p[i].x -= cent.x, p[i].y -= cent.y;
        }
        double alpha = acos(p[0].x / r);
        double theta = 2 * PI / n;
        double xmin = INF, xmax = -INF, ymin = INF, ymax = -INF;
        for(i = 0; i < n; ++i) {
            p[i] = Point(r * cos(alpha + i * theta),
                r * sin(alpha + i * theta));
            xmin = Min(xmin, p[i].x);
            xmax = Max(xmax, p[i].x);
            ymin = Min(ymin, p[i].y);
            ymax = Max(ymax, p[i].y);
        }
        printf("Polygon %d: %.3lf\n", ++tc, (xmax-xmin)*(ymax-ymin));
    }
    return 0;
}

Feedback

# re: PKU2504 Rounding Box  回復  更多評論   

2008-05-05 09:02 by oyjpart
那個大牛給我個正確的求圓心的坐標的公式?

# re: PKU2504 Rounding Box  回復  更多評論   

2008-05-05 12:21 by alpc55
@oyjpart
想要嗎~~~
我有哈~~~

# re: PKU2504 Rounding Box  回復  更多評論   

2008-05-05 14:35 by oyjpart
謝謝啊
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲国内自拍| 99视频精品| 久久一区免费| 欧美不卡视频| 亚洲国产日韩在线| 亚洲国产福利在线| 亚洲午夜免费视频| 亚洲一区在线播放| 久久香蕉国产线看观看网| 欧美自拍偷拍午夜视频| 久久综合色8888| 国产精品第三页| 狠狠色丁香久久综合频道| 99在线|亚洲一区二区| 久久av在线看| 亚洲国产精品va在线观看黑人| 欧美成人一二三| 国产欧美日韩一区| 中文av一区二区| 亚洲福利视频一区| 久久不射2019中文字幕| 国产精品久久久一区麻豆最新章节| 在线观看国产日韩| 久久精品99久久香蕉国产色戒| 亚洲乱码一区二区| 美女诱惑黄网站一区| 激情欧美一区二区三区在线观看| 欧美一区二区视频免费观看| 日韩一区二区高清| 欧美日韩精品系列| 亚洲风情在线资源站| 日韩视频免费观看高清在线视频| 国产色视频一区| 亚洲影院污污.| 久久综合激情| 欧美一区二区女人| 欧美日韩小视频| 中国av一区| 久久三级视频| 亚洲电影在线| 亚洲大胆女人| 欧美成人午夜| 久久久久国产成人精品亚洲午夜| 欧美亚洲免费高清在线观看| 国产欧美不卡| 亚洲免费高清| 亚洲另类一区二区| 亚洲精品乱码视频| 欧美日韩免费看| 亚洲国产精品久久久久久女王| 国产香蕉97碰碰久久人人| 中日韩男男gay无套| 国产精品久久久久久户外露出| 欧美1级日本1级| 韩国三级电影一区二区| 亚洲综合成人在线| 狠狠色丁香久久婷婷综合_中| 一二三区精品| 黄色一区二区三区四区| 午夜精品影院在线观看| 黄色成人av在线| 亚洲影院高清在线| 91久久综合| 亚洲女性裸体视频| 性欧美超级视频| 久久夜色精品国产亚洲aⅴ| 久久人人超碰| 欧美日韩综合精品| 久久久久九九九九| 国产亚洲精久久久久久| 亚洲国产精品成人久久综合一区| 在线日韩av片| 米奇777在线欧美播放| 欧美a级理论片| 亚洲国产小视频在线观看| 美女视频黄免费的久久| 亚洲电影中文字幕| 亚洲色图自拍| 国产美女诱惑一区二区| 亚洲精品欧美一区二区三区| 一本色道久久综合狠狠躁的推荐| 欧美日韩大片| 亚洲一区二区黄| 久久久另类综合| 亚洲第一网站| 欧美片第1页综合| 免费一区视频| 国产日韩精品久久| 久久久久久久久久久成人| 亚洲深夜福利在线| 国产老女人精品毛片久久| 久久精品成人一区二区三区| 亚洲丶国产丶欧美一区二区三区| 亚洲精品美女免费| 免费不卡视频| 99天天综合性| 开心色5月久久精品| 国产精品永久免费观看| 久久久久一区二区三区| 99精品欧美一区二区三区 | 国产精品久久久久久户外露出| 亚洲小视频在线| 99精品欧美一区二区蜜桃免费| 久久久99久久精品女同性 | 在线观看福利一区| 欧美黄在线观看| 亚洲国产精品欧美一二99| 亚洲欧美成人网| 国产精品久久久久久av福利软件| 欧美在线综合视频| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 男人天堂欧美日韩| 亚洲欧美日韩另类| 亚洲美洲欧洲综合国产一区| 国产综合久久久久久鬼色| 午夜精品一区二区三区电影天堂| 欧美a级片网| 欧美一区免费视频| 99re66热这里只有精品3直播| 韩国成人福利片在线播放| 国产精品国产| 欧美日韩18| 久久亚洲精品一区二区| 性色一区二区三区| 一区二区三区 在线观看视| 欧美二区乱c少妇| 亚洲精品在线看| 一色屋精品视频在线观看网站| 欧美日韩在线观看一区二区三区| 久久这里有精品视频| 午夜老司机精品| 亚洲性视频网站| 日韩亚洲一区二区| 亚洲第一久久影院| 欧美xx69| 欧美国产高潮xxxx1819| 老司机67194精品线观看| 欧美中文在线观看国产| 小黄鸭精品密入口导航| 亚洲欧美日韩综合aⅴ视频| 国产精品夜夜夜| 另类春色校园亚洲| 久久色在线观看| 久久婷婷国产综合精品青草| 欧美专区18| 久久久久久久999| 久久色在线观看| 蜜桃av久久久亚洲精品| 欧美成人中文字幕在线| 欧美高清视频| 欧美精品成人一区二区在线观看 | 久久精品电影| 久久精品日产第一区二区| 久久精品国产亚洲一区二区| 久久蜜桃香蕉精品一区二区三区| 久久久久久999| 免费亚洲一区| 亚洲精品国产精品国自产观看浪潮 | 亚洲日本黄色| 一本久久综合| 亚洲一区二区免费看| 欧美一二三区精品| 久久亚洲欧美| 欧美日韩在线观看一区二区三区| 国产精品美女久久久免费| 国产一区二区三区在线观看免费视频| 国产在线日韩| 亚洲欧洲一区二区三区在线观看| 亚洲图片欧美午夜| 欧美在线高清| 欧美激情第一页xxx| 久久精品亚洲国产奇米99| 久久久久五月天| 欧美激情一区二区久久久| 日韩午夜精品| 性欧美8khd高清极品| 美女主播视频一区| 国产精品男女猛烈高潮激情| 国产日韩欧美91| 亚洲激情视频在线播放| 亚洲性视频h| 久久一二三四| 亚洲天堂免费观看| 久久琪琪电影院| 欧美四级伦理在线| 在线观看日韩一区| 亚洲欧美日本伦理| 亚洲国产岛国毛片在线| 亚洲一区三区视频在线观看| 久久亚洲高清| 国产日韩欧美不卡| 亚洲天堂成人在线观看| 免费观看成人网| 亚洲欧美文学| 亚洲一级网站| 欧美大片在线看| 影音欧美亚洲| 久久久久久9| 亚洲欧美久久久久一区二区三区| 欧美高清视频在线|