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

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 閱讀(2719) 評論(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>
            你懂的视频欧美| 久久久久国产一区二区| 亚洲国产影院| 欧美激情一区二区三级高清视频| 在线免费观看一区二区三区| 女生裸体视频一区二区三区| 欧美国产高潮xxxx1819| 99视频超级精品| 亚洲一区二区三区影院| 国产综合在线看| 亚洲国产婷婷| 欧美婷婷在线| 久久久美女艺术照精彩视频福利播放 | 黄网站免费久久| 亚洲国产精品高清久久久| 欧美私人网站| 免费观看不卡av| 午夜精品久久久久久| 久久久www成人免费毛片麻豆| 亚洲欧洲另类国产综合| 亚洲综合清纯丝袜自拍| 欲香欲色天天天综合和网| 日韩午夜三级在线| 一区二区在线免费观看| 欧美中文字幕在线观看| 韩国一区二区在线观看| 亚洲电影成人| 国产精品高清在线| 免费观看不卡av| 国产亚洲欧洲| 亚洲愉拍自拍另类高清精品| 亚洲三级毛片| 亚洲一区二区在线| 日韩视频免费大全中文字幕| 国产精品色婷婷久久58| 99精品视频免费全部在线| 国产亚洲va综合人人澡精品| 亚洲精品日韩在线| 国内自拍一区| 久久激情视频| 久久久亚洲一区| 国产日韩av高清| 欧美老女人xx| 91久久中文字幕| 亚洲一区二区免费视频| 久久精品视频免费| 亚洲国产精品第一区二区三区| 久久在线观看视频| 欧美视频一区在线观看| 一区二区三区精品在线| 欧美一区二区三区的| 国产一区二区久久精品| 久久一日本道色综合久久| 最新日韩中文字幕| 黄色精品一二区| 欧美va亚洲va日韩∨a综合色| 久久av资源网站| 亚洲国产精品成人精品| 9色国产精品| 麻豆freexxxx性91精品| 欧美成人性生活| 欧美视频网站| 影音先锋日韩精品| 亚洲天堂成人在线观看| 亚洲在线观看视频| 亚洲成人在线观看视频| 国产免费成人在线视频| 欧美国产极速在线| 亚洲先锋成人| 性欧美暴力猛交69hd| 亚洲少妇诱惑| 欧美日韩视频在线一区二区| 亚洲日本va午夜在线影院| 在线观看视频免费一区二区三区 | 国外成人在线视频| 久久精品国产v日韩v亚洲| 麻豆精品在线观看| 最近看过的日韩成人| 欧美久久一级| 亚洲图片在线观看| 久久精品欧洲| 亚洲高清一区二区三区| 欧美激情偷拍| 亚洲深夜影院| 久久综合狠狠综合久久激情| 亚洲国产片色| 欧美日一区二区在线观看 | 蜜桃久久精品一区二区| 亚洲国产精品精华液网站| 亚洲无限av看| 国产欧美一区二区精品婷婷| 久久久久久999| 亚洲欧洲午夜| 久久成人免费电影| 亚洲国产导航| 国产精品日韩一区二区| 久久影视精品| 亚洲午夜激情网站| 欧美成人在线免费观看| 性色av香蕉一区二区| 激情久久久久久久| 欧美日韩亚洲视频| 久久久久久网址| 亚洲一区二区三区视频播放| 美日韩精品免费| 亚洲欧美在线免费| 亚洲精品无人区| 国产一区二区三区四区三区四 | 一区二区三区你懂的| 欧美v日韩v国产v| 亚洲影院免费观看| 91久久精品www人人做人人爽| 国产精品乱码人人做人人爱| 免费成人黄色av| 久久久91精品国产| 午夜一区二区三区在线观看| 亚洲黄色免费电影| 老司机精品视频网站| 午夜免费在线观看精品视频| 日韩午夜电影| 久久久久一区二区三区| 亚洲欧美成人精品| 一区二区三区蜜桃网| 亚洲精品视频在线观看网站| 免费成人黄色av| 久久久久久久久久看片| 亚洲欧美日韩中文播放| 在线视频精品一区| 最新亚洲视频| 91久久精品一区二区别| 在线观看成人网| 激情欧美一区二区| 国产日产亚洲精品系列| 国产精品网曝门| 国产欧美在线播放| 国产精品一区免费观看| 国产精品色网| 国产精品性做久久久久久| 欧美色道久久88综合亚洲精品| 欧美精品久久久久久久免费观看 | 亚洲欧美日韩在线播放| 亚洲一区二区高清视频| 亚洲性图久久| 亚洲在线视频观看| 先锋影音久久| 久久成人亚洲| 美女久久网站| 亚洲高清视频在线观看| 亚洲国产精品一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲欧洲一区二区三区在线观看| 伊人久久大香线蕉综合热线 | 国产婷婷色一区二区三区在线 | 亚洲韩国日本中文字幕| 亚洲理伦电影| 亚洲一区视频在线| 久久国产精品网站| 噜噜噜在线观看免费视频日韩| 免费不卡欧美自拍视频| 亚洲国产一区二区三区a毛片| 亚洲精品国产欧美| 亚洲午夜精品久久| 久久精品理论片| 欧美激情亚洲一区| 国产精品一级在线| 亚洲国产黄色| 国产精品99久久久久久有的能看| 亚洲欧美国产日韩天堂区| 久久精品一区四区| 亚洲国产成人av在线| 亚洲小视频在线观看| 久久精品国产亚洲一区二区三区| 欧美大片在线观看| 国产精品一区久久久| 亚洲国产日韩一区| 午夜影视日本亚洲欧洲精品| 久久全国免费视频| 日韩天天综合| 久久精品国产v日韩v亚洲| 欧美美女喷水视频| 激情久久中文字幕| 欧美日韩中文字幕日韩欧美| 国产亚洲一区精品| 一区二区三区.www| 久久综合九色综合网站| 中日韩男男gay无套| 欧美jizzhd精品欧美喷水| 国产精品久久久久久一区二区三区| 国模 一区 二区 三区| 夜夜嗨av色一区二区不卡| 久久日韩粉嫩一区二区三区| 99国产精品国产精品久久| 久久久免费精品| 国产日韩精品一区二区| 夜夜夜久久久| 欧美mv日韩mv国产网站app| 亚洲欧美一区二区三区在线| 欧美日本在线看| 亚洲区欧美区| 免费看成人av|