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

            Why so serious? --[NKU]schindlerlee

            pku3334 二分+求多邊形面積

            ?1?/*
            ?2??*?SOUR:pku3334
            ?3??*?ALGO:二分高度,求水平線和多邊形的交點,求出多邊形面積
            ?4??*?DATE:?2010年?07月?07日?星期三?22:29:14?CST
            ?5??*?*/
            ?6?const?int?N?=?1024;
            ?7?struct?point_t?{
            ?8?????double?x,?y;
            ?9?????point_t?(){}
            10?????point_t?(double?a,?double?b){x?=?a,?y?=?b;}
            11?}P[N],?Q[N];
            12?int?m,?n,?cp,?cq;
            13?double?area;
            14?
            15?point_t?operator?+?(point_t?a,?point_t?b)?{?return?point_t(a.x?+?b.x,?a.y?+?b.y);}
            16?point_t?operator?-?(point_t?a,?point_t?b)?{?return?point_t(a.x?-?b.x,?a.y?-?b.y);}
            17?double?SQR(double?x?){?return?x?*?x;}
            18?double?dist(point_t?a)?{?return?sqrt(SQR(a.x)?+?SQR(a.y));}
            19?double?dist(point_t?a,?point_t?b)?{?return?dist(a-b);}
            20?double?cross_mul(point_t?a,?point_t?b)?{?return?a.x?*?b.y?-?a.y?*?b.x;}
            21?const?double?eps?=?1e-10;
            22?
            23?double?calcu(point_t?p[],?int?n,?int?cusp,?double?h)
            24?{
            25???double?ans?=?0;
            26???int?i,?j,?k,?beg?=?0,?end?=?n?-?1;
            27???if?(h?<=?p[cusp].y)?{
            28???????return?0;
            29???}
            30???for?(i?=?0;i?<?cusp;i?++)?{
            31???????if?(p[i].y?>=?h?&&?h?>=?p[i+1].y)?{
            32???????????beg?=?i;break;
            33???????}
            34???}
            35???for?(i?=?n?-?2;i?>=?cusp;i--)?{
            36???????if?(p[i].y?<=?h?&&?h?<=?p[i+1].y)?{
            37???????????end?=?i;break;
            38???????}
            39???}
            40?
            41???point_t?a?=?point_t(p[beg].x?+?(h?-?p[beg].y)?*?(p[beg+1].x?-?p[beg].x)
            42???????????????????????/?(p[beg+1].y?-?p[beg].y)?,?h);
            43???point_t?b?=?point_t(p[end].x?+?(h?-?p[end].y)?*?(p[end+1].x?-?p[end].x)
            44???????????????????????/?(p[end+1].y?-?p[end].y)?,?h);
            45???ans?+=?cross_mul(a,?p[beg+1])?+?cross_mul(p[end],?b)?+?cross_mul(b,?a);
            46???for?(i?=?beg?+?1;i?<=?end?-?1;i++)?{
            47???????ans?+=?cross_mul(p[i],?p[i+1]);
            48???}
            49???return?fabs(ans?/?2.0);
            50?}
            51?
            52?int?main()
            53?{
            54???int?testcase,?i;
            55???scanf("%d",?&testcase);
            56???while?(testcase--)?{
            57???????scanf("%lf",?&area);
            58???????scanf("%d",?&m);?for?(i?=?0;i?<?m;i++)?{?scanf("%lf?%lf",?&P[i].x,?&P[i].y);?}
            59???????scanf("%d",?&n);?for?(i?=?0;i?<?n;i++)?{?scanf("%lf?%lf",?&Q[i].x,?&Q[i].y);?}
            60???????for?(i?=?1;i?<?m-1;i++)?{
            61???????????if?(P[i-1].y?>=?P[i].y?&&?P[i].y?<=?P[i+1].y)?{
            62???????????????cp?=?i;
            63???????????}
            64???????}
            65???????for?(i?=?1;i?<?n-1;i++)?{
            66???????????if?(Q[i-1].y?>=?Q[i].y?&&?Q[i].y?<=?Q[i+1].y)?{
            67???????????????cq?=?i;
            68???????????}
            69???????}
            70???????double?L?=?min(P[cp].y?,?Q[cq].y),
            71??????????????R?=?min(min(P[0].y,?P[m?-?1].y)?,?min(Q[0].y,?Q[n?-?1].y))?;
            72???????while?(L?+?eps?<?R)?{
            73???????????double?mid?=?(L?+?R)?/?2.0;
            74???????????double?A?=?calcu(P,?m,?cp,?mid)?+?calcu(Q,?n,?cq,?mid);
            75???????????//printf("h?=?%.3f,?A?=?%.3f\n",?mid,?A);
            76???????????if?(A?<=?area)?{
            77???????????????L?=?mid;
            78???????????}else?{
            79???????????????R?=?mid;
            80???????????}
            81???????}
            82???????printf("%.3f\n",?L);
            83???}
            84???return?0;
            85?}
            86?
            87?
            88?

            posted on 2010-07-08 21:34 schindlerlee 閱讀(1651) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

            久久久网中文字幕| 国产精品久久久久影视不卡| 久久性生大片免费观看性| 93精91精品国产综合久久香蕉| 99久久成人18免费网站| 精品久久人人妻人人做精品| 亚洲а∨天堂久久精品9966| 亚洲乱码中文字幕久久孕妇黑人 | 久久露脸国产精品| 国产成人无码精品久久久性色| 狠狠色婷婷久久一区二区三区| 国产精品99久久久久久猫咪 | 国产99精品久久| 久久精品免费大片国产大片| AV无码久久久久不卡蜜桃| 国内精品久久久久国产盗摄| 久久成人国产精品免费软件| 情人伊人久久综合亚洲| 国产成人精品综合久久久久| 国产99久久久国产精免费| 亚洲∧v久久久无码精品| 国产真实乱对白精彩久久| 国产精品一久久香蕉国产线看观看| 久久免费视频一区| 国产精品免费看久久久香蕉| 97久久超碰国产精品2021| 久久人妻AV中文字幕| 亚洲国产一成久久精品国产成人综合| 国产精品99精品久久免费| 日韩精品久久久肉伦网站| 免费精品国产日韩热久久| 欧美伊人久久大香线蕉综合69| 国产精品99久久精品爆乳| 日韩精品国产自在久久现线拍| 婷婷久久久亚洲欧洲日产国码AV| 亚洲精品午夜国产va久久| 久久精品无码一区二区三区免费 | 91久久精品视频| 久久国产精品成人免费| 精品九九久久国内精品| 久久噜噜电影你懂的|