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

經典的狀態壓縮DP,《算法藝術與信息學競賽》的例題。f[i][j]表示前i行,最后兩行狀態為二進制數j,嵌入的最多芯片數。第i行到第i+1行用DFS進行狀態轉移。
由于第i+1行只和第i行有關,故可以用滾動數組優化。

/*************************************************************************
Author: WHU_GCC
Created Time: 2000-9-12 11:08:54
File Name: pku1038.cpp
Description: 
***********************************************************************
*/

#include 
<iostream>
using namespace std;

#define out(x) (cout << #x << ": " << x << endl)
typedef 
long long int64;
const int maxint = 0x7FFFFFFF;
const int64 maxint64 = 0x7FFFFFFFFFFFFFFFLL;
template 
<class T> void show(T a, int n) for (int i = 0; i < n; ++i) cout << a[i] << ' '; cout << endl; }
template 
<class T> void show(T a, int r, int l) for (int i = 0; i < r; ++i) show(a[i], l); cout << endl; }

const int maxn = 150;
const int maxm = 10;

int n, m, k;
int g[maxn];

int cnt_mask;
int mask[30];

int f[2][1 << (2 * maxm)];

void generate_mask()
{
    cnt_mask 
= 0;
    
for (int i = 0; i < m - 2; i++)
    
{
        
int tmp = 0;
        tmp 
|= 7 << (2 * m + i);
        tmp 
|= 7 << (m + i);
        mask[cnt_mask
++= tmp;
        tmp 
= 0;
        tmp 
|= 7 << (m + i);
        tmp 
|= 7 << (i);
        mask[cnt_mask
++= tmp;
    }

    
for (int i = 0; i < m - 1; i++)
    
{
        
int tmp = 0;
        tmp 
|= 3 << (2 * m + i);
        tmp 
|= 3 << (m + i);
        tmp 
|= 3 << (i);
        mask[cnt_mask
++= tmp;
    }

}


void dfs(int row, int org_t, int now_t, int now, int cnt)
{
    f[(row 
+ 1% 2][now_t & ((1 << (2 * m)) - 1)] >?= f[row % 2][org_t] + cnt;
    
for (int i = now; i < cnt_mask; i++)
        
if ((now_t & mask[i]) == 0)
            dfs(row, org_t, now_t 
| mask[i], i + 1, cnt + 1);
}


int dp()
{
    memset(f, 
-1sizeof(f));
    f[
1][(g[0<< m) | g[1]] = 0;

    
int end = (1 << (2 * m));
    
for (int i = 1; i < n - 1; i++)
    
{
        
for (int j = 0; j < end; j++if (f[i % 2][j] != -1)
        
{
            
int t = (j << m) | g[i + 1];
            dfs(i, j, t, 
00);
        }

        memset(f[i 
% 2], -1sizeof(f[i % 2]));
    }

    
int ret = 0;
    
for (int i = 0; i < end; i++)
        ret 
>?= f[(n - 1% 2][i];
    
return ret;
}


int main()
{
    
int ca;
    
for (scanf("%d"&ca); ca--;)
    
{
        scanf(
"%d%d%d"&n, &m ,&k);
        memset(g, 
0sizeof(g));
        
for (int i = 0; i < k; i++)
        
{
            
int x, y;
            scanf(
"%d%d"&x, &y);
            g[x 
- 1|= 1 << (y - 1);
        }

        generate_mask();
        printf(
"%d\n", dp());
    }

    
return 0;
}
posted on 2007-09-12 20:44 Felicia 閱讀(1584) 評論(3)  編輯 收藏 引用 所屬分類: 動態規劃
Comments
  • # re: [動態規劃]pku1038
    Run&Run
    Posted @ 2007-11-21 15:41
    大牛同志,你的方法和<<算法藝術與信息學競賽上>>寫的不太一樣....
    狀態壓縮的DP......研究了我足足5個小時才看明白.....
    你開頭的解釋也太少了吧,光那個mask[]就想了我快兩個小時.
    你要照顧新人撒,多寫點解釋撒.
    話說回來,你位運算確實用得出神入化,佩服!  回復  更多評論   
  • # re: [動態規劃]pku1038
    Felicia
    Posted @ 2007-11-21 15:44
    mask表示所有可能的放置情況  回復  更多評論   
  • # re: [動態規劃]pku1038
    prister
    Posted @ 2016-05-18 01:05
    @Run&amp;Run
    里面的兩處>?=是什么意思  回復  更多評論   
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久男女视频| 欧美va天堂| 国产手机视频一区二区| 欧美日韩成人一区| 欧美高清视频| 欧美人成免费网站| 欧美日韩一级黄| 欧美日韩亚洲综合| 国产精品乱人伦一区二区| 国产精品美女久久久久av超清| 欧美午夜片在线免费观看| 国产精品初高中精品久久| 国产精品日韩欧美综合| 国产视频亚洲精品| 亚洲国产精品一区制服丝袜| 亚洲精品一区二区网址| 夜夜精品视频一区二区| 亚洲男人av电影| 久久视频免费观看| 亚洲国产精品va在看黑人| 欧美高清日韩| 亚洲一区亚洲二区| 久久只精品国产| 欧美视频二区| 今天的高清视频免费播放成人| 亚洲欧洲日产国产网站| 亚洲在线播放电影| 久热国产精品| 宅男精品视频| 久久尤物视频| 国产精品高潮呻吟久久av黑人| 国产一区二区精品久久91| 在线看日韩av| 亚洲欧美日韩国产精品| 麻豆国产精品va在线观看不卡 | 欧美精品一区二区三区四区| 国产精品成人在线| 国产伦精品一区二区三| 欧美视频一区二区三区| 在线免费观看日本一区| 亚洲专区一区二区三区| 久久最新视频| 欧美一区二区三区在线观看视频| 欧美激情aaaa| 国内久久婷婷综合| 欧美一级黄色录像| 一区二区毛片| 欧美日韩一级黄| 99一区二区| 亚洲欧洲久久| 麻豆精品视频在线| 激情综合电影网| 久久精品国产亚洲精品| 亚洲视频一区二区在线观看 | 一区二区三区视频在线播放| 久久综合色一综合色88| 亚洲欧美激情精品一区二区| 欧美日韩在线播放| 日韩一级在线| 亚洲精品国偷自产在线99热| 久久夜色精品国产欧美乱极品| 国产欧美日韩精品一区| 欧美一区高清| 亚洲欧美日韩精品在线| 国产精品麻豆成人av电影艾秋| 国产精品99久久久久久人| 亚洲精品免费网站| 欧美三级电影大全| 亚洲主播在线| 午夜国产精品视频免费体验区| 国产精品免费网站| 久久久久一区二区| 久久久之久亚州精品露出| 在线免费观看日本一区| 欧美国产日韩一区二区在线观看| 卡通动漫国产精品| 99精品国产99久久久久久福利| 亚洲国产精品久久91精品| 欧美日韩国产欧| 午夜精品一区二区在线观看| 亚洲综合999| 在线观看欧美日韩| 亚洲国产精品一区制服丝袜| 欧美精品网站| 欧美亚洲一区三区| 久久国产精品99国产精| 亚洲精品国产精品国自产观看| 亚洲精品欧美在线| 国产精品欧美久久| 久久一区二区三区国产精品| 美女露胸一区二区三区| 亚洲制服少妇| 美女网站久久| 香蕉成人啪国产精品视频综合网| 欧美一区二区视频免费观看 | 国产精品成人一区二区艾草| 亚洲欧美韩国| 久久久国产精彩视频美女艺术照福利| 亚洲国产婷婷| 亚洲视频免费观看| 亚洲国产欧美久久| 亚洲私人影院| 亚洲高清免费视频| 亚洲视频第一页| 亚洲国产精品激情在线观看| 日韩视频一区| 亚洲国产精品欧美一二99| 亚洲素人在线| 99精品国产在热久久婷婷| 欧美一区二区三区在线视频| 99一区二区| 久久综合九色综合网站| 亚洲欧美日韩国产精品| 欧美高清在线观看| 久久午夜国产精品| 国产精品蜜臀在线观看| 亚洲日本电影在线| 亚洲人精品午夜| 久久精品国亚洲| 欧美影视一区| 国产精品久久久久久久第一福利| 亚洲国产cao| 亚洲国产精品一区二区第四页av | 宅男在线国产精品| 亚洲美女尤物影院| 狼人社综合社区| 久久人人爽人人爽| 国产日韩在线视频| 亚洲自拍偷拍一区| 午夜精品久久久| 欧美日韩精品欧美日韩精品| 欧美激情综合色| 亚洲国产成人久久综合一区| 午夜在线不卡| 久久国产精品色婷婷| 国产精品久久久久久亚洲调教| 亚洲欧洲在线一区| 亚洲国产日韩精品| 免费国产自线拍一欧美视频| 久久欧美肥婆一二区| 黄色亚洲精品| 久久久久高清| 欧美成人免费在线视频| 在线免费日韩片| 美女尤物久久精品| 亚洲国产精品悠悠久久琪琪| 日韩视频免费在线观看| 欧美噜噜久久久xxx| 一本色道久久综合亚洲精品高清| 一区二区三区日韩| 国产精品久久久久久久久久久久久久| 日韩一级大片| 午夜在线不卡| 狠色狠色综合久久| 欧美成人免费网站| 99精品免费网| 久久精品动漫| 欧美阿v一级看视频| 国产精品亚洲成人| 亚洲欧美在线免费| 久久久精品动漫| 在线观看日产精品| 欧美激情综合| 中文网丁香综合网| 久久久久久久性| 亚洲国产日韩欧美在线动漫| 欧美成人嫩草网站| 一区二区三区免费在线观看| 久久九九精品99国产精品| 悠悠资源网亚洲青| 欧美视频在线观看视频极品| 新67194成人永久网站| 欧美大香线蕉线伊人久久国产精品| 亚洲精品孕妇| 国产精品一区二区三区乱码| 久久精品水蜜桃av综合天堂| 亚洲国产一区二区视频| 欧美一区在线视频| 亚洲精品综合在线| 国产一区成人| 欧美另类视频| 久久综合九色综合欧美狠狠| 中文无字幕一区二区三区| 两个人的视频www国产精品| 亚洲天堂黄色| 亚洲免费电影在线观看| 国产视频一区免费看| 欧美日韩性生活视频| 久热综合在线亚洲精品| 性欧美1819性猛交| av72成人在线| 亚洲第一级黄色片| 欧美中日韩免费视频| 一区二区高清视频| 亚洲国产精品久久| 国产啪精品视频| 国产精品成人av性教育| 久久久久久亚洲精品不卡4k岛国| 亚洲综合国产| 亚洲一区免费|