• <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 © 李東亮

            东京热TOKYO综合久久精品| 色天使久久综合网天天| 久久精品国产亚洲AV嫖农村妇女| 国内精品久久久久久99蜜桃| 99久久亚洲综合精品成人| 久久w5ww成w人免费| 亚洲一区中文字幕久久| 久久久久亚洲AV无码专区首JN | 一本色道久久88精品综合| 99久久国产亚洲高清观看2024| segui久久国产精品| 亚洲中文字幕无码久久精品1| 国产AV影片久久久久久| 亚洲中文久久精品无码ww16| 91精品国产91久久久久久| 久久午夜伦鲁片免费无码| 亚洲精品乱码久久久久久蜜桃图片 | 久久精品国产久精国产果冻传媒| 久久精品成人免费看| AV无码久久久久不卡网站下载| 久久男人AV资源网站| 久久久久久久久久免免费精品| 丰满少妇人妻久久久久久4| 日日躁夜夜躁狠狠久久AV| 99久久综合国产精品免费| 伊人久久大香线蕉av不卡| 天天影视色香欲综合久久| 国产精品美女久久久久AV福利| .精品久久久麻豆国产精品| 一级做a爰片久久毛片16| AV无码久久久久不卡网站下载| 亚洲AV日韩精品久久久久久久| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 精品无码久久久久久国产| 久久高潮一级毛片免费| 久久精品国产精品青草app| 精品久久一区二区三区| 狠色狠色狠狠色综合久久| 久久免费视频网站| 99久久免费国产精品特黄| 少妇熟女久久综合网色欲|