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

            pku 1176 Party Lamps

            這道題題意是:
            有N盞燈,每個(gè)燈有兩個(gè)狀態(tài):開(kāi)、關(guān)。有4個(gè)按鈕,第一個(gè)按鈕使得所有燈改變狀態(tài),第二個(gè)按鈕使得奇數(shù)號(hào)燈改變狀態(tài),第三個(gè)按鈕使得偶數(shù)號(hào)燈改變狀態(tài),第四個(gè)按鈕使得3K+1號(hào)燈改變狀態(tài)。
            開(kāi)始所有燈都是亮著的,給出操作次數(shù),最后亮著的燈和滅了的燈,求最后所有可能的狀態(tài)。
            這題可以用模二方程組來(lái)表示。設(shè)a、b、c、d分別為第一個(gè)、第二個(gè)、第三個(gè)、第四個(gè)按鈕按過(guò)的次數(shù)。count為操作總數(shù),滿足:
            如第k盞燈亮著
            如k%2==1&&(k-1)%3==0,則(a+b+d)%2=0
            如k%2==1&&(k-1)%3==1,則(a+b)%2=0
            如k%2==0&&(k-1)%3==0,則(a+c+d)%2=0
            如k%2==0&&(k-1)%3==1,則(a+c)%2=0
            如第k盞燈滅著
            如k%2==1&&(k-1)%3==0,則(a+b+d)%2=1
            如k%2==1&&(k-1)%3==1,則(a+b)%2=1
            如k%2==0&&(k-1)%3==0,則(a+c+d)%2=1
            如k%2==0&&(k-1)%3==1,則(a+c)%2=1

            開(kāi)始想用高斯消元來(lái)處理這個(gè)方程組,后來(lái)一看變量只有4個(gè)。。而且是模二關(guān)系下的方程組,直接枚舉即可,總狀態(tài)數(shù)不過(guò)16種。然后構(gòu)造解并hash判重即可。

            代碼如下:
             1import java.io.*;
             2import java.util.*;
             3public class Main {
             4
             5    /**
             6     * @param args
             7     */

             8    static int n=0,co=0,flag[]=new int [10];
             9    static char res[];
            10    static TreeSet<String> ans=new TreeSet<String>();
            11    static void makeans(int a,int b,int c,int d,int pos)
            12    {
            13        if(pos>n)
            14        {
            15            ans.add(new String(res));
            16        }

            17        else
            18        {
            19            if(pos%2==1)
            20                if((pos-1)%3==0)
            21                    res[pos-1]=(char)((a+b+d+1)%2+48);
            22                else
            23                    res[pos-1]=(char)((a+b+1)%2+48);
            24            else
            25                if((pos-1)%3==0)
            26                    res[pos-1]=(char)((a+c+d+1)%2+48);
            27                else
            28                    res[pos-1]=(char)((a+c+1)%2+48);
            29            makeans(a,b,c,d,pos+1);
            30        }

            31    }

            32    public static void main(String[] args) throws IOException{
            33        StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
            34        in.nextToken();
            35        n=(int)in.nval;;
            36        in.nextToken();
            37        co=(int)in.nval;
            38        Arrays.fill(flag,-1);
            39        flag[0]=co&1;
            40        res=new char[n];
            41        while(true)
            42        {
            43            in.nextToken();
            44            if((int)in.nval==-1break;
            45            int t=(int)in.nval;
            46            if((t&1)==1)
            47                if((t-1)%3==0)
            48                    flag[3]=0;
            49                else
            50                    flag[1]=0;
            51            else
            52                if((t-1)%3==0)
            53                    flag[4]=0;
            54                else
            55                    flag[2]=0;
            56        }

            57        while(true)
            58        {
            59            in.nextToken();
            60            if((int)in.nval==-1break;
            61            int t=(int)in.nval;
            62            if((t&1)==1)
            63                if((t-1)%3==0)
            64                    flag[3]=1;
            65                else
            66                    flag[1]=1;
            67            else
            68                if((t-1)%3==0)
            69                    flag[4]=1;
            70                else
            71                    flag[2]=1;
            72        }

            73        for(int a=0;a<=1;a++)
            74            for(int b=0;b<=1;b++)
            75                for(int c=0;c<=1;c++)
            76                    for(int d=0;d<=1;d++)
            77                    {
            78                        if(a+b+c+d>co) continue;
            79                        if(((a+b+c+d)&1)!=flag[0]) continue;
            80                        if(flag[1]!=-1&&((a+b)&1)!=flag[1]) continue;
            81                        if(flag[2]!=-1&&((a+c)&1)!=flag[2]) continue;
            82                        if(flag[3]!=-1&&((a+b+d)&1)!=flag[3]) continue;
            83                        if(flag[4]!=-1&&((a+c+d)&1)!=flag[4]) continue;
            84                        makeans(a,b,c,d,1);
            85                    }

            86        for(String p:ans)
            87           System.out.println(p);
            88    }

            89
            90}

            91

            posted on 2010-10-19 14:17 yzhw 閱讀(224) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): numberic

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            統(tǒng)計(jì)系統(tǒng)

            留言簿(1)

            隨筆分類(lèi)(227)

            文章分類(lèi)(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            国内精品久久人妻互换| 色婷婷综合久久久中文字幕| 久久精品嫩草影院| 国产精品免费久久久久电影网| 国产免费久久久久久无码| 久久青青草原精品国产不卡| 久久天天躁狠狠躁夜夜2020一 | 久久亚洲国产午夜精品理论片| 国产成人精品久久二区二区| 欧美国产精品久久高清| 一本久久a久久精品vr综合| 99久久久久| 亚洲精品午夜国产VA久久成人| 51久久夜色精品国产| 无码人妻少妇久久中文字幕蜜桃| 久久精品国产亚洲沈樵| 欧美国产成人久久精品| 99久久www免费人成精品| 精品久久久久久中文字幕大豆网| 久久综合九色综合久99| 免费无码国产欧美久久18| 国产—久久香蕉国产线看观看| 久久天堂AV综合合色蜜桃网| 午夜视频久久久久一区 | 无码8090精品久久一区| 精品久久久久久无码中文字幕一区| 国产精品无码久久综合网| 成人久久综合网| 久久亚洲欧美国产精品 | 香蕉久久夜色精品升级完成| 51久久夜色精品国产| 2020久久精品国产免费| 久久久久亚洲精品无码蜜桃| 国产精品日韩欧美久久综合| 亚洲AV无码久久| 无码人妻久久一区二区三区免费| 午夜精品久久久久| 日日狠狠久久偷偷色综合96蜜桃| 国产成人精品久久| 激情综合色综合久久综合| 亚洲精品高清久久|