• <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盞燈,每個燈有兩個狀態(tài):開、關(guān)。有4個按鈕,第一個按鈕使得所有燈改變狀態(tài),第二個按鈕使得奇數(shù)號燈改變狀態(tài),第三個按鈕使得偶數(shù)號燈改變狀態(tài),第四個按鈕使得3K+1號燈改變狀態(tài)。
            開始所有燈都是亮著的,給出操作次數(shù),最后亮著的燈和滅了的燈,求最后所有可能的狀態(tài)。
            這題可以用模二方程組來表示。設(shè)a、b、c、d分別為第一個、第二個、第三個、第四個按鈕按過的次數(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

            開始想用高斯消元來處理這個方程組,后來一看變量只有4個。。而且是模二關(guān)系下的方程組,直接枚舉即可,總狀態(tài)數(shù)不過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 閱讀(218) 評論(0)  編輯 收藏 引用 所屬分類: numberic

            <2010年11月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導(dǎo)航

            統(tǒng)計

            公告

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

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久不见久久见免费视频7| 99久久夜色精品国产网站| 国内精品久久久久伊人av| 久久婷婷综合中文字幕| 日本久久久精品中文字幕| 国内精品久久久久久久久电影网| 四虎影视久久久免费观看| 99久久这里只精品国产免费| 久久久久久久久无码精品亚洲日韩 | 久久亚洲私人国产精品vA| 久久久久久久99精品免费观看| 久久精品国产亚洲7777| 久久国产高潮流白浆免费观看| 久久97久久97精品免视看| 欧美亚洲色综久久精品国产| 99久久人人爽亚洲精品美女| 日本强好片久久久久久AAA| 久久人人爽人人澡人人高潮AV| 久久久无码一区二区三区| 久久久久久国产精品免费免费| 久久大香香蕉国产| 狠狠色婷婷久久综合频道日韩| 国产午夜精品久久久久九九| 亚洲综合伊人久久综合| 少妇被又大又粗又爽毛片久久黑人 | 精品无码久久久久国产动漫3d| 91精品国产91久久久久久青草| 久久青青草原亚洲av无码app | 国产精品久久波多野结衣| 久久亚洲精品视频| 久久国产精品成人片免费| 人妻无码中文久久久久专区| 久久SE精品一区二区| 久久人人爽人人爽人人片AV高清 | 久久亚洲国产最新网站| 久久影院午夜理论片无码| 久久久久这里只有精品| 女人香蕉久久**毛片精品| 久久国产精品久久国产精品| 久久午夜综合久久| 青青青国产成人久久111网站|