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

oyjpArt ACM/ICPC算法程序設(shè)計(jì)空間

// 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 閱讀(2734) 評論(3)  編輯 收藏 引用 所屬分類: ACM/ICPC或其他比賽
前幾天的練習(xí)賽有一道計(jì)算幾何題,一向討厭計(jì)算幾何的我推了一下之后就沒做了。
后來比賽結(jié)束的時(shí)候發(fā)現(xiàn)他們都過了,后悔不已。故做了一下,求三角形外接圓圓心那個(gè)我使用
垂直平分線相交的那個(gè)做的。上次他們說有公式,我在書上找了個(gè)圓心公式,可是代進(jìn)去不對。
估計(jì)是書上公式寫錯(cuò)了...
 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  回復(fù)  更多評論   

2008-05-05 09:02 by oyjpart
那個(gè)大牛給我個(gè)正確的求圓心的坐標(biāo)的公式?

# re: PKU2504 Rounding Box  回復(fù)  更多評論   

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

# re: PKU2504 Rounding Box  回復(fù)  更多評論   

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>
            亚洲国产精品久久久久秋霞蜜臀| 欧美精品v日韩精品v国产精品| 最近中文字幕日韩精品| 中日韩视频在线观看| 亚洲激情在线播放| 欧美怡红院视频| 午夜国产精品影院在线观看| 欧美激情1区2区3区| 蜜桃久久av一区| 国产精品色婷婷久久58| 亚洲精品视频在线| 亚洲精品欧美在线| 美乳少妇欧美精品| 美日韩在线观看| 国模大胆一区二区三区| 亚洲免费影视| 性久久久久久| 国产模特精品视频久久久久| 在线中文字幕不卡| 一区二区三区蜜桃网| 欧美精品一区二区蜜臀亚洲| 欧美大片91| 亚洲第一视频| 狂野欧美一区| 欧美激情亚洲自拍| 亚洲黄网站黄| 欧美电影在线观看完整版| 欧美国产日韩二区| 亚洲精品乱码久久久久久黑人| 久久一区二区三区四区| 免费欧美日韩| 亚洲破处大片| 欧美日韩精品免费观看视一区二区 | 国产在线高清精品| 欧美一区二区久久久| 久久av一区二区三区漫画| 国产亚洲毛片在线| 欧美专区在线| 蜜臀久久久99精品久久久久久 | 国产精品一区久久久久| 亚洲中午字幕| 久久久久久综合网天天| 怡红院精品视频在线观看极品| 午夜精品在线观看| 国产精品一区二区a| 亚洲欧美制服中文字幕| 久久综合电影| 亚洲精品国产精品久久清纯直播| 欧美高清影院| 一区二区三区视频在线观看| 欧美一区二区成人6969| 麻豆91精品| 亚洲精品一区在线观看| 欧美一区网站| 亚洲黄色免费电影| 国产精品www994| 久久国产精品久久久| 亚洲国产精品一区在线观看不卡| 亚洲一区二区成人| 狠狠色综合色区| 欧美日韩国产精品专区| 午夜精品视频网站| 91久久久久久国产精品| 欧美一区二区三区在线| 亚洲精品国产日韩| 国产女人精品视频| 欧美激情久久久| 欧美在线啊v一区| 99爱精品视频| 可以免费看不卡的av网站| 亚洲私拍自拍| 亚洲国产成人精品久久| 国产精品嫩草99av在线| 欧美成人午夜免费视在线看片| 亚洲一区二区在线| 亚洲国产精品一区二区尤物区 | 欧美一区高清| 亚洲人成网站在线观看播放| 国产乱肥老妇国产一区二| 欧美成人小视频| 久久九九热re6这里有精品| 99热精品在线观看| 欧美成人中文字幕在线| 久久精品一区| 亚洲欧美在线视频观看| 亚洲精品一二三区| 一区二区三区在线高清| 国产精品亚洲综合久久| 欧美日韩一区二区三区视频 | 亚洲欧美日韩专区| 亚洲人成人99网站| 欧美肥婆在线| 久久综合图片| 久久久久99精品国产片| 欧美亚洲视频在线观看| 亚洲一区二区在线播放| 一本一本久久| 国产精品自在线| 欧美连裤袜在线视频| 老司机精品福利视频| 久久久久久久一区二区三区| 亚洲欧美在线播放| 亚洲一区二区三区涩| 一区二区不卡在线视频 午夜欧美不卡'| 欧美电影免费观看大全| 久久伊人亚洲| 久久女同互慰一区二区三区| 久久久国产精品亚洲一区| 欧美一级电影久久| 欧美一区二区三区四区夜夜大片| 午夜精品视频一区| 亚洲欧美日韩精品久久久| 亚洲午夜羞羞片| 午夜免费日韩视频| 久久本道综合色狠狠五月| 欧美中文在线观看| 久久精品一区二区三区中文字幕| 久久av二区| 久久久久综合| 欧美成人午夜激情视频| 亚洲成人资源| 欧美一区=区| 欧美在线一级va免费观看| 久久国产免费| 免费在线看一区| 亚洲电影一级黄| 亚洲精选国产| 亚洲欧美在线x视频| 久久久久久综合| 欧美劲爆第一页| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美成人精品一区二区| 欧美久久久久久| 国产精品看片资源| 激情六月综合| 日韩视频在线观看| 午夜视频精品| 美女日韩欧美| 日韩视频专区| 午夜一区在线| 欧美福利电影在线观看| 国产精品每日更新在线播放网址| 国产日韩在线看片| 亚洲国产精品一区二区尤物区| 99精品欧美一区二区三区综合在线| 亚洲永久在线观看| 免费观看一区| 亚洲一区二区毛片| 久久三级视频| 国产精品狼人久久影院观看方式| 在线观看亚洲a| 亚洲一区观看| 亚洲二区在线视频| 午夜在线一区二区| 欧美久久久久久久久久| 国产一区二区高清不卡| 在线亚洲观看| 免费亚洲一区| 午夜精品福利在线观看| 欧美精品色综合| 韩日欧美一区| 亚洲在线一区二区| 欧美高清在线一区二区| 亚洲欧美日韩精品| 欧美日韩p片| 亚洲电影观看| 久久国产精品电影| 一区二区三区日韩精品| 老**午夜毛片一区二区三区| 国产麻豆91精品| 制服诱惑一区二区| 欧美成人久久| 久久国产一区| 国产欧美日本一区二区三区| 一区二区三区 在线观看视频| 你懂的视频一区二区| 欧美一区二区三区四区高清| 欧美性天天影院| 夜夜嗨av一区二区三区网站四季av| 老鸭窝亚洲一区二区三区| 亚洲一区二区在线| 国产精品sss| 一本久久精品一区二区| 欧美大色视频| 久久免费的精品国产v∧| 国产一区二区你懂的| 午夜在线一区| 亚洲欧美视频在线观看| 国产精品久久久久久久久久久久 | 亚洲精品男同| 欧美.日韩.国产.一区.二区| 亚洲高清二区| 免费成年人欧美视频| 久久高清免费观看| 国模 一区 二区 三区| 久久视频一区| 欧美一区二区在线播放| 国产视频观看一区| 久久精品中文字幕一区| 欧美一区二区三区另类|