青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

算法學社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0

題目描述:

    N(N<100)個帶開關的燈泡排成一行,每個燈泡的開關可以轉換自己,左邊連續D個和右邊連續D個燈泡的開關狀態。現在給你每個燈泡的初始狀態{Ai},請問最少開關多少次能把所有的燈熄滅?

吐槽:

    1.上來就往DP的思路想是什么水平...
    2.本blog的第一個數學題目... mark~

思路分析:

    首先在最后的解中,顯然每個開關只能按一次。所以貌似可以狀壓DP?,但是由于開關可以控制后面的燈泡,所以100*2^30果斷GG...
    于是發現這個可以列出方程組,Xi表示開關i是否按下,Mij表示開關i是否可以控制燈泡j:
        (M00*X0) XOR (M10*X1) XOR ... XOR (M0n-1*Xn-1) = A0
        (M10*X0) XOR (M11*X1) XOR ... XOR (M1n-1*Xn-1) = A1
        .              .          ...      .           . .
        .              .          ...      .           . .
        .              .          ...      .           . .
        (Mj0*X0) XOR (Mj1*X1) XOR ... XOR (Mjn-1*Xn-1) = Aj
    
    這個異或方程組怎么解呢? 其實 A XOR B = (A + B) mod 2
    可以看成是同余方程組,那么經典的解法就是高斯-約當消元法了...
    其實算的時候還是用XOR操作方便一些...
    這個方程組的解有三種可能:
        1. 無解: 判斷消元后的系數矩陣是否存在 0 0 ... 0 1的情況,如果有輸出impossible,否則一定有解。
        2. 唯一解: 消去的過程中沒有自由變量,即對消去每一列的過程都有主元可以選擇,那么直接向前迭代求出唯一解~
        3. 無窮解: 存在自由變量,這個時候需要對自由變量進行枚舉,這個復雜度是指數級的,如果自由變量很少的話是ok的。那么如何估算自由變量呢?
                   矩陣的秩決定了自由變量的個數,不難發現這個矩陣是非常有特點的,從左到右畫了一個很粗的斜線 :P ,如果n滿足(n>2*D+1)的話,這個矩陣很明顯是滿秩的。
                   否則的話自由變量會在兩行完全相同的情況下出現,顯然這種情況下前n列都是1,這樣的行最多會出現D+1次。枚舉次數最多是2^(D+1),這樣就可以算了~
    
    2和3是可以放在一起寫的哦~
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cassert>
 4 using namespace std;
 5 #define re(i,n) for(int i =0; i< n; i++)
 6 #define re2(i,n) for(int i =0; i<= n; i++)
 7 const int M = 105;
 8 int gauss[M][M];
 9 int hash[M] , solution[M], P[M], val[M];
10 template <typename T> inline void chkmin(T &a, const T  b) { if(a > b) a = b;}
11 int main(){
12     int t;
13     cin >> t;
14     while(t --){
15         int n,d;
16         scanf("%d%d",&n,&d);
17         re(i,n) {
18             scanf("%d",&gauss[i][n]);
19         }
20         int N = 0;
21         re(i,n) {
22             re(j,n) gauss[i][j] = 0;
23             int l = max(0, i - d);
24             int r = min(n-1, i + d);
25             for(int j = l; j<= r; j++)
26                 gauss[i][j] = 1;
27         }
28         re(i,n) P[i] = -1 , hash[i] = 0;
29 //        re(i,n) {re2(j,n) cout << gauss[i][j] << " "; cout<<endl;} cout<<endl;
30         re(i,n) {
31             bool flag = 0;
32             re(j,n) if(!hash[j] && gauss[j][i]){
33                 P[i] = j;
34                 flag = hash[j] = 1;
35                 re(k,n) if(!hash[k] && gauss[k][i])
36                     for(int x = i; x <= n; x++)
37                         gauss[k][x] ^= gauss[j][x];
38                 break;
39             }
40             if(!flag) val[N++] = i;
41         }
42 //        re(i,n) {re2(j,n) cout << gauss[i][j] << " "; cout<<endl;} cout<<endl;
43         assert(N <=16);
44         bool s = 0; int mask = 1 << N;
45         re(i,n) {
46             bool flag = 0;
47             re(j,n) if(gauss[i][j]) flag = 1;
48             if(!flag && gauss[i][n]) { s = 1; break; }
49         }
50         if(s) { puts("impossible"); continue; }
51         int ans = M;
52         re(i, mask){
53             int sum =0;
54             re(j,N) solution[ val[j] ] = (i & (1 << j)) != 0;
55             for(int j =n-1 ; j >= 0; j--){
56                 if(P[j] == -1) continue;
57                 assert(gauss[P[j]][j]);
58                 solution[j] = gauss[P[j]][n];
59                 for(int k = n-1; k>j; k--)
60                     solution[j] ^= solution[k] & gauss[P[j]][k];
61             }
62             re(j,n) sum += solution[j]!=0;
63             chkmin(ans,sum);
64         }
65         cout<<ans<<endl;
66     }
67 }
68 
posted on 2012-04-27 18:26 西月弦 閱讀(621) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲自拍高清| 欧美日韩日韩| 日韩视频免费| 亚洲精品免费看| 亚洲高清久久网| 亚洲精品久久久久久下一站| 日韩午夜一区| 午夜免费久久久久| 久久国产精品72免费观看| 久久九九精品99国产精品| 免费国产一区二区| 欧美日韩亚洲综合一区| 国产亚洲精品自拍| 亚洲风情亚aⅴ在线发布| 99国产精品99久久久久久| 亚洲一区在线直播| 你懂的视频一区二区| 亚洲毛片在线观看| 欧美有码视频| 欧美日韩精品免费观看视一区二区| 国产精品久久久久久超碰 | 久久精品二区三区| 欧美另类videos死尸| 国产女人水真多18毛片18精品视频| 亚洲国产专区校园欧美| 欧美在线欧美在线| 亚洲高清视频中文字幕| 午夜欧美大尺度福利影院在线看| 美女视频一区免费观看| 国产精品一二一区| 日韩视频欧美视频| 免费看的黄色欧美网站| 亚洲欧美日韩综合国产aⅴ| 欧美精品免费视频| 伊人色综合久久天天| 午夜精品一区二区三区电影天堂 | 亚洲国产日韩在线一区模特| 欧美一二三区精品| 亚洲免费黄色| 欧美大尺度在线| 禁久久精品乱码| 欧美一区二区三区四区夜夜大片| 亚洲区一区二| 美女91精品| 在线观看免费视频综合| 久久久国产视频91| 亚洲欧美久久久| 国产精品每日更新| 亚洲一区二区免费在线| 99国内精品| 欧美日韩爆操| 在线视频亚洲一区| 亚洲精品资源美女情侣酒店| 欧美国产一区二区三区激情无套| 亚洲国产91| 欧美国产视频一区二区| 麻豆久久久9性大片| 在线观看一区欧美| 欧美高清成人| 欧美成人精品福利| 亚洲日本黄色| 亚洲国产精品女人久久久| 美女脱光内衣内裤视频久久影院| 亚洲国内在线| 亚洲精品一二| 欧美亚洲第一页| 欧美粗暴jizz性欧美20| 中文高清一区| 一个色综合av| 国产精品一区亚洲| 亚洲午夜一级| 亚洲国产精品第一区二区三区| 欧美日韩一区二区三区视频 | 亚洲视频一区| 国产精品成人播放| 久久成人精品| 美女福利精品视频| av成人黄色| 亚洲一区二区在线看| 国产人成一区二区三区影院| 久久久久在线观看| 浪潮色综合久久天堂| 99www免费人成精品| 亚洲天堂第二页| 一区二区三区在线视频免费观看| 亚洲电影免费观看高清完整版在线 | 午夜在线成人av| 亚洲国产日韩欧美一区二区三区| 亚洲六月丁香色婷婷综合久久| 国产精品嫩草久久久久| 久久亚洲春色中文字幕| 欧美日韩国产专区| 久久精品欧美| 欧美日韩色一区| 久久久久久综合网天天| 欧美日韩一区高清| 老牛嫩草一区二区三区日本| 欧美日韩国产a| 欧美不卡三区| 国产老肥熟一区二区三区| 欧美成人免费小视频| 国产精品久久一卡二卡| 亚洲国产精品999| 国产日韩av高清| 一本色道久久综合亚洲精品小说| 黄色成人在线| 亚洲欧美日韩在线观看a三区 | 亚洲网在线观看| 老司机精品视频网站| 欧美影院精品一区| 欧美日韩中文另类| 欧美成人午夜| 狠狠色丁香婷综合久久| 亚洲欧美电影在线观看| 亚洲性人人天天夜夜摸| 欧美gay视频| 久久免费高清| 国产日韩久久| 亚洲一区二区在线看| 亚洲午夜在线| 欧美日韩国产精品自在自线| 老鸭窝91久久精品色噜噜导演| 国产精品国产三级国产aⅴ浪潮 | 玖玖玖国产精品| 久久久久久自在自线| 国产欧美日韩一区二区三区在线| 夜夜嗨av一区二区三区四区| 日韩香蕉视频| 久久av在线| 久久久久久婷| 精品动漫一区| 久久在线免费观看| 免费在线日韩av| 亚洲欧洲一区二区三区| 亚洲欧美怡红院| 午夜精品久久久久久久99黑人| 欧美日韩亚洲国产一区| 亚洲日韩欧美视频一区| 亚洲人成网站999久久久综合| 久久久久久久国产| 欧美电影电视剧在线观看| 一区在线观看| 久久动漫亚洲| 欧美成人免费播放| 亚洲国产精品一区二区www在线| 久久婷婷亚洲| 最新精品在线| 亚洲一区网站| 国产区在线观看成人精品| 久久国产精品久久久久久久久久| 美日韩精品视频| 一本色道久久综合精品竹菊| 欧美性大战xxxxx久久久| 午夜精品久久| 欧美激情精品久久久久| 一区二区日韩欧美| 国产精品日本欧美一区二区三区| 午夜一区二区三区不卡视频| 免费日韩视频| 中文成人激情娱乐网| 国产偷国产偷精品高清尤物| 久久免费视频这里只有精品| 亚洲国产日韩美| 午夜精品视频| 亚洲国产精品成人综合| 欧美午夜片在线观看| 欧美在线一区二区| 亚洲日本成人在线观看| 久久精品国产77777蜜臀| 在线观看日韩www视频免费| 欧美日本韩国一区二区三区| 午夜在线观看免费一区| 91久久夜色精品国产网站| 性伦欧美刺激片在线观看| 亚洲国产精品热久久| 国产精品亚洲一区二区三区在线| 久久综合久久久久88| 亚洲欧美日韩国产成人| 亚洲国产精品成人综合| 亚洲欧美国产毛片在线| 亚洲黄色尤物视频| 国产一区二区三区丝袜| 欧美另类变人与禽xxxxx| 久久久精品日韩| 亚洲影视在线播放| 亚洲丁香婷深爱综合| 欧美在线国产精品| 99视频一区二区三区| 激情欧美国产欧美| 国产日产欧美a一级在线| 欧美性大战xxxxx久久久| 欧美大片一区| 久久亚洲国产精品一区二区| 亚洲制服少妇| 在线视频一区二区| 亚洲精品一区中文| 91久久精品国产91性色| 欧美成人免费大片| 免费欧美日韩国产三级电影| 久久夜色精品亚洲噜噜国产mv|