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

             

            SWITCH

            題目描述如下:

            There are N lights in a line. Given the states (on/off) of the lights, your task is to determine at least how many lights should be switched (from on to off, or from off to on), in order to make the lights on and off alternatively.
            Input
            One line for each testcase.
            The integer N (1 <= N <= 10000) comes first and is followed by N integers representing the states of the lights ("1" for on and "0" for off).
            Process to the end-of-file.
            Output
            For each testcase output a line consists of only the least times of switches.
            Sample Input
            3 1 1 1
            3 1 0 1
            Sample Output
            1
            0

            分析:該題看似簡(jiǎn)單但卻隱藏著陷阱,題目要求尋找的是最少的切換數(shù),故從第二盞燈開始判斷處理得出的結(jié)論是不一定正確的。通過(guò)分析可以發(fā)現(xiàn)該題其實(shí)只存在兩種情況:奇數(shù)位置的燈開著或者偶數(shù)位置的燈開著。這樣可以直觀的處理該題:取奇數(shù)位置燈開著需要切換燈狀態(tài)數(shù)與偶數(shù)位置燈開著需切換燈狀態(tài)數(shù)的較小值。這樣的話需要掃描兩邊燈的狀態(tài)數(shù)組,開銷較大。進(jìn)一步分析,設(shè)a為奇數(shù)位置的燈開著需要切換的燈數(shù),b為偶數(shù)位置燈開著需要切換的燈數(shù)。其實(shí)a+b=n。這樣本題就只需要掃描一遍數(shù)組,且進(jìn)一步優(yōu)化后存儲(chǔ)燈狀態(tài)的數(shù)組也可以省了。具體代碼如下:

             

             1#include <stdio.h>
             2#include <stdlib.h>
             3
             4int main(void)
             5{
             6    int n;
             7    int prev;
             8    int tmp;
             9    int cnt;
            10    int a;
            11    while (scanf("%d"&n) == 1)
            12    {
            13        prev = -1;
            14        cnt = 0;
            15        a = n;
            16        while (n--)
            17        {
            18            scanf("%d"&tmp);
            19            if (tmp == prev)
            20            {
            21                if (tmp == 0)
            22                {
            23                    prev = 1;
            24                }

            25                else
            26                {
            27                    prev = 0;
            28                }

            29                ++cnt;
            30                continue;
            31            }

            32            prev = tmp;
            33        }

            34        if (cnt > a/2)
            35            cnt = a-cnt;
            36        printf("%d\n", cnt);
            37    }

            38    return 0;
            39}

            posted @ 2010-09-20 09:31 李東亮 閱讀(332) | 評(píng)論 (0)編輯 收藏

             

            The Circumference of the Circle

            本題在ZOJ上題號(hào)是1090,在POJ上是2242。題目描述如下:

            Description

            To calculate the circumference of a circle seems to be an easy task - provided you know its diameter. But what if you don't?

            You are given the cartesian coordinates of three non-collinear points in the plane.
            Your job is to calculate the circumference of the unique circle that intersects all three points.

            Input

            The input will contain one or more test cases. Each test case consists of one line containing six real numbers x1,y1, x2,y2,x3,y3, representing the coordinates of the three points. The diameter of the circle determined by the three points will never exceed a million. Input is terminated by end of file.

            Output

            For each test case, print one line containing one real number telling the circumference of the circle determined by the three points. The circumference is to be printed accurately rounded to two decimals. The value of pi is approximately 3.141592653589793.

            Sample Input

            0.0 -0.5 0.5 0.0 0.0 0.5

            0.0 0.0 0.0 1.0 1.0 1.0

            5.0 5.0 5.0 7.0 4.0 6.0

            0.0 0.0 -1.0 7.0 7.0 7.0

            50.0 50.0 50.0 70.0 40.0 60.0

            0.0 0.0 10.0 0.0 20.0 1.0

            0.0 -500000.0 500000.0 0.0 0.0 500000.0

            Sample Output

            3.14

            4.44

            6.28

            31.42

            62.83

            632.24

            3141592.65

            分析:本題是一道比較容易的題,具體就考察了幾個(gè)數(shù)學(xué)公式的使用。本題的關(guān)鍵是求出內(nèi)接三角形的外接圓直徑。而在圓的內(nèi)接三角形的性質(zhì)中有這樣一條:三角形的任何兩邊的乘積的等于第三邊上的高于其外接圓直徑的乘積。這樣問(wèn)題就轉(zhuǎn)化為求接三角形的某一邊上的高,在知道三角形三個(gè)頂點(diǎn)的情況下,求其面積應(yīng)該是件容易事,求得面積后,高的問(wèn)題也就迎刃而解。求面積時(shí),由于本人較懶,用的是海倫公式:S = ,其中p = (a+b+c)/2abc分別為三角形的三個(gè)變長(zhǎng),S=0.5*c*h,即可求得ha*b=h*d,那么直徑d也就出來(lái)了。具體代碼如下.

            #include <stdio.h>

            #include <stdlib.h>

            #include <math.h>

            int main(void)

            {

                   double x1, y1, x2, y2, x3, y3;

                   double l1, l2, l3;

                   double p;

                   double h;

                   double d;

                   while (scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &x3, &y3) == 6)

                   {

                          l1 = sqrt(pow(x1-x2, 2) + pow(y1-y2, 2));

                          l2 = sqrt(pow(x1-x3, 2) + pow(y1-y3, 2));

                          l3 = sqrt(pow(x2-x3, 2) + pow(y2-y3, 2));

                          p = (l1 + l2 + l3)/2;

                          h = sqrt(p*(p-l1)*(p-l2)*(p-l3))*2/l3;

                          d = l1*l2/h;

                          printf("%.2f\n", 3.141592653589793*d);

                   }

                   return 0;

            }

            posted @ 2010-09-19 22:44 李東亮 閱讀(1510) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共2頁(yè): 1 2 

            posts - 12, comments - 1, trackbacks - 0, articles - 1

            Copyright © 李東亮

            青青草原综合久久大伊人精品| 国产精品综合久久第一页| 久久久婷婷五月亚洲97号色| 香蕉久久一区二区不卡无毒影院| 精品久久久久中文字| 精品伊人久久久| 亚洲国产成人久久精品影视| 亚洲一级Av无码毛片久久精品| 国产精品久久久久久福利69堂| 亚洲第一永久AV网站久久精品男人的天堂AV| 伊人久久大香线蕉综合网站| 久久国产精品99精品国产987| 18禁黄久久久AAA片| 久久免费视频6| 精品久久久久久久| 久久精品国产亚洲AV无码偷窥| 久久久中文字幕日本| 丁香久久婷婷国产午夜视频| 亚洲AV日韩AV永久无码久久| 久久精品无码一区二区三区日韩 | 久久精品草草草| 亚洲中文字幕无码久久2020| 精品无码久久久久久国产| 久久精品这里热有精品| 久久国产成人精品麻豆| 久久久国产乱子伦精品作者| 久久亚洲国产精品成人AV秋霞| 人人狠狠综合久久亚洲| 香蕉久久影院| 亚洲综合久久夜AV | 精品无码久久久久国产动漫3d| 一本色道久久综合狠狠躁篇| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产精品日韩深夜福利久久| 麻豆精品久久久一区二区| 国产精品毛片久久久久久久| 国产韩国精品一区二区三区久久| 丰满少妇人妻久久久久久| 久久免费视频观看| 久久精品无码专区免费| 一本久久精品一区二区|