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

經典的狀態壓縮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>
            99re热这里只有精品视频| 99re这里只有精品6| 最新国产乱人伦偷精品免费网站| 伊人久久亚洲美女图片| 亚洲电影免费观看高清完整版| 亚洲日韩成人| 久久免费少妇高潮久久精品99| 亚洲一区二区三区高清| 亚洲国产成人午夜在线一区| 久久综合999| 欧美一区二区视频在线观看| 一本色道精品久久一区二区三区 | 亚洲国产精品va在线观看黑人| 一区二区电影免费在线观看| 国产午夜亚洲精品不卡| 亚洲国产一区二区三区a毛片| 欧美一区二区三区免费视频| 亚洲欧洲精品一区二区精品久久久| 亚洲综合色视频| 亚洲天堂男人| 欧美国产日韩视频| 久久久久一区二区三区| 一区精品久久| 亚洲欧洲精品天堂一级| 亚洲电影免费观看高清| 欧美激情第3页| 欧美日韩国产色站一区二区三区| 免费视频一区| 在线观看日韩av| 欧美一区二区三区四区在线| 亚洲国产精品久久| 久久精品99国产精品日本| 国产欧美丝祙| 欧美一区二区在线免费播放| 欧美激情精品久久久久久免费印度| 国内精品嫩模av私拍在线观看| 亚洲欧美在线一区| 欧美一区二区日韩| 国产精品视区| 亚洲国产欧美一区二区三区同亚洲 | 亚洲欧美99| 国产精品久久久久久av下载红粉| 亚洲精品欧美精品| 亚洲一区二区3| 国产精品一区在线播放| 欧美承认网站| 亚洲二区三区四区| 美女91精品| 午夜精品婷婷| 欧美电影资源| 9l视频自拍蝌蚪9l视频成人 | 亚洲三级毛片| 亚洲永久在线| 麻豆精品一区二区综合av | 国产精品免费看久久久香蕉| 99re在线精品| 亚洲性视频h| 在线午夜精品自拍| 国产精品人成在线观看免费| 亚洲一区二区视频在线观看| 99精品欧美一区二区三区综合在线| 亚洲欧美韩国| 亚洲性线免费观看视频成熟| 亚洲一卡二卡三卡四卡五卡| 国产欧美一区二区三区沐欲| 久久综合色天天久久综合图片| 亚洲欧洲在线免费| 性欧美暴力猛交69hd| 精东粉嫩av免费一区二区三区| 国产精品高精视频免费| 欧美在线观看你懂的| 亚洲欧美日韩国产精品| 合欧美一区二区三区| 欧美国产日韩精品| 欧美激情精品| 国产精品大片wwwwww| 久久精品国产第一区二区三区最新章节| 欧美高清在线精品一区| 亚洲性人人天天夜夜摸| 禁断一区二区三区在线| 欧美日韩在线视频观看| 久久久久久亚洲精品中文字幕| 亚洲免费电影在线| 久久综合五月| 在线精品国产欧美| 国产精品少妇自拍| 欧美男人的天堂| 久久久人人人| 欧美黄色大片网站| 国产精品系列在线播放| 影音先锋一区| 亚洲无线观看| 免费人成网站在线观看欧美高清| 欧美专区第一页| 亚洲图片欧美日产| 亚洲精品国产精品乱码不99| 亚洲一区二区在线看| 亚洲精品视频在线观看免费| 亚洲欧美日韩国产中文| 欧美成人首页| 亚洲欧美日本国产有色| 亚洲小说欧美另类社区| 99这里有精品| 亚洲免费观看高清完整版在线观看熊| 亚洲专区一区| 亚洲欧美国产精品桃花| 日韩视频永久免费| 久久精品国产69国产精品亚洲| 看欧美日韩国产| 久久久中精品2020中文| 欧美性jizz18性欧美| 欧美精品一区二区三区视频| 国产欧美精品xxxx另类| 在线亚洲国产精品网站| 免费欧美高清视频| 欧美大尺度在线观看| 亚洲欧美另类在线观看| 性亚洲最疯狂xxxx高清| 亚洲欧美日韩综合aⅴ视频| 欧美国产成人在线| 欧美日韩精品在线播放| 亚洲成色精品| 99国内精品久久| 欧美激情一区二区三区四区| 久久国产精品毛片| 国产区在线观看成人精品| 午夜久久久久久| 久色婷婷小香蕉久久| 亚洲欧美日韩区| 国产精品高清免费在线观看| 国产一区二区三区免费观看| 欧美精品在欧美一区二区少妇| 欧美精品在线观看一区二区| 欧美天堂亚洲电影院在线播放| 国产毛片一区二区| 欧美一区二区三区在线播放| 国产精品99久久不卡二区| 91久久精品久久国产性色也91| 欧美在线播放视频| 国产一区二区三区四区hd| 亚洲精品在线观看免费| 在线观看一区二区精品视频| 久久青草久久| 亚洲日本va午夜在线电影| 亚洲一区二区三区影院| 国产精品毛片在线看| 亚洲欧美日韩在线不卡| 亚洲欧美日本视频在线观看| 国产日韩亚洲欧美综合| 久久综合伊人77777| 久久综合狠狠综合久久综青草| 91久久午夜| 中日韩美女免费视频网址在线观看 | 亚洲一区二区三区激情| 国产欧美日本在线| 一本久久综合| 欧美亚洲免费| 国产精品久久97| 久久久欧美精品| 亚洲激情在线激情| 亚洲高清三级视频| 亚洲主播在线播放| 欧美激情一区三区| 欧美午夜性色大片在线观看| 亚洲激情专区| 免费成人毛片| 亚洲欧美国产三级| 欧美日韩成人在线播放| 欧美一区二区免费观在线| 亚洲精品少妇| 国产日韩一区欧美| 亚洲电影自拍| 免费日韩一区二区| 国产精品高潮呻吟| 免费在线欧美视频| 最近看过的日韩成人| 欧美午夜精品| 欧美大片一区| 国产精品一区二区三区乱码| 欧美国产一区二区三区激情无套| 欧美午夜视频在线| 欧美激情一区二区在线| 欧美黄色免费网站| 美女图片一区二区| 国产精品人成在线观看免费| 91久久在线播放| 欧美日产一区二区三区在线观看| 亚洲精选视频免费看| 亚洲国产一区二区精品专区| 国精产品99永久一区一区| 久久综合电影| 蜜臀av性久久久久蜜臀aⅴ| 亚洲日本欧美日韩高观看| 亚洲欧美日韩国产一区二区| 国产酒店精品激情| 亚洲理论在线| 国产日韩一区二区三区在线播放| 99成人在线| 99riav国产精品| 欧美成人情趣视频|