• <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ù),故從第二盞燈開(kāi)始判斷處理得出的結(jié)論是不一定正確的。通過(guò)分析可以發(fā)現(xiàn)該題其實(shí)只存在兩種情況:奇數(shù)位置的燈開(kāi)著或者偶數(shù)位置的燈開(kāi)著。這樣可以直觀(guān)的處理該題:取奇數(shù)位置燈開(kāi)著需要切換燈狀態(tài)數(shù)與偶數(shù)位置燈開(kāi)著需切換燈狀態(tài)數(shù)的較小值。這樣的話(huà)需要掃描兩邊燈的狀態(tài)數(shù)組,開(kāi)銷(xiāo)較大。進(jìn)一步分析,設(shè)a為奇數(shù)位置的燈開(kāi)著需要切換的燈數(shù),b為偶數(shù)位置燈開(kāi)著需要切換的燈數(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}

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


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

            Copyright © 李東亮

            伊人久久成人成综合网222| 精品久久久久久无码免费| 久久久久亚洲AV成人网人人网站 | 精品久久8x国产免费观看| 日本加勒比久久精品| 久久精品蜜芽亚洲国产AV| 99久久无码一区人妻| 欧美大香线蕉线伊人久久| 久久综合九色综合久99| 久久久久国产一区二区三区| 国产成人久久精品麻豆一区| 久久亚洲精品无码aⅴ大香| 久久国产精品久久| 亚洲欧美日韩中文久久| 久久久久亚洲AV综合波多野结衣| 人妻精品久久久久中文字幕一冢本| 久久伊人色| 久久久精品久久久久久 | 99热热久久这里只有精品68| 日韩av无码久久精品免费| 久久精品国产亚洲av麻豆蜜芽| 久久精品国产亚洲AV不卡| 18岁日韩内射颜射午夜久久成人| 伊人久久大香线蕉av不卡| 少妇久久久久久被弄到高潮 | 亚洲综合精品香蕉久久网| 性高湖久久久久久久久AAAAA| 国产精品久久久99| 国产产无码乱码精品久久鸭| 久久精品国产亚洲精品2020| 亚洲国产精品无码久久一线 | 久久天天躁狠狠躁夜夜躁2O2O| 久久久久高潮综合影院| 少妇熟女久久综合网色欲| 久久人人爽人人爽人人爽| 久久人妻无码中文字幕| 99蜜桃臀久久久欧美精品网站| 久久精品日日躁夜夜躁欧美| 久久精品国产色蜜蜜麻豆| 久久亚洲AV成人无码软件| 亚洲精品乱码久久久久66|