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

經典的狀態壓縮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>
            亚洲欧美激情精品一区二区| 亚洲精品偷拍| 国产真实乱偷精品视频免| 欧美在线播放视频| 久久久国产91| 久久精品一区二区三区不卡牛牛 | 欧美日韩免费观看一区二区三区| 每日更新成人在线视频| 亚洲激情不卡| 国产精品日韩精品欧美在线 | 久久久精品五月天| 老妇喷水一区二区三区| 最新日韩精品| 欧美午夜不卡在线观看免费| 欧美一区二区黄色| 亚洲精品亚洲人成人网| 亚洲欧美日韩精品久久| 亚洲色无码播放| 亚洲第一精品夜夜躁人人爽| 久久精品视频在线免费观看| 亚洲综合日韩在线| 日韩视频一区二区三区| 亚洲国产精品成人综合| 红桃视频成人| 国产一区二区三区高清播放| 欧美性做爰毛片| 在线观看视频亚洲| 亚洲国产成人久久综合| 亚洲欧美在线免费| 欧美亚洲一区二区在线| 亚洲欧洲av一区二区三区久久| 久久在线视频在线| 蜜月aⅴ免费一区二区三区| 久久久久国产一区二区| 亚洲欧洲一区二区三区久久| 久久精品视频在线免费观看| 欧美主播一区二区三区美女 久久精品人 | 亚洲一区一卡| 欧美激情1区2区3区| 免费国产自线拍一欧美视频| 日韩午夜av在线| 亚洲视频在线二区| 新片速递亚洲合集欧美合集| 午夜欧美大尺度福利影院在线看| 欧美日韩不卡在线| 欧美日韩中文字幕| 国产精品视频网站| 亚洲一区二区3| 亚洲欧美一区二区激情| 亚洲欧洲美洲综合色网| 欧美在线不卡| 亚洲精品美女91| 亚洲国产精品专区久久| 久久综合九色| 久久精品1区| 欧美激情五月| 欧美视频一区在线观看| 99精品欧美一区| 欧美尤物一区| 亚洲欧美日韩一区| 国产日韩在线播放| 亚洲激情av| 亚洲大胆在线| 欧美激情亚洲一区| 中文久久精品| 欧美成人精品影院| 亚洲午夜在线| 国产日韩av高清| 一区二区三区四区国产| 久久婷婷国产综合精品青草 | 久久五月婷婷丁香社区| 久久精品一区二区三区不卡牛牛| 激情一区二区三区| 亚洲一区二区三区四区五区午夜| 日韩五码在线| 国产日韩精品一区二区三区在线 | 日韩视频一区二区| 亚洲美女视频在线观看| 国产精品magnet| 欧美一区二视频在线免费观看| 欧美在线视频不卡| 亚洲精品小视频| 一本一本久久| 欧美激情亚洲综合一区| 亚洲尤物在线| 久久久精品动漫| 正在播放日韩| 久久丁香综合五月国产三级网站| 在线日韩av片| 快she精品国产999| 欧美日韩国内| 久久视频一区二区| 欧美日韩另类丝袜其他| 久久久国产精品一区二区中文 | 欧美午夜精品久久久久久人妖 | 亚洲一区二区免费| 久久婷婷麻豆| 激情久久久久久| 亚洲日本无吗高清不卡| 欧美电影在线观看完整版| 极品尤物av久久免费看 | 欧美成人高清| 国产精品免费一区豆花| 亚洲三级电影在线观看 | 欧美韩日亚洲| 精品999日本| 99综合电影在线视频| 欧美精品大片| 久久这里有精品15一区二区三区| 欧美日韩国产不卡在线看| 老**午夜毛片一区二区三区| 国产精品久久久久久久久久妞妞 | 午夜激情亚洲| 亚洲一区999| 欧美激情第二页| 欧美 日韩 国产 一区| 国产欧美精品在线观看| 一本色道久久综合亚洲精品不| 亚洲欧洲日夜超级视频| 亚洲国产综合91精品麻豆| 欧美日韩在线不卡| 亚洲国产高清一区二区三区| 黄色一区三区| 欧美一区二区视频在线观看| 亚洲欧美成人一区二区在线电影| 性18欧美另类| 久久国产主播精品| 国产麻豆精品theporn| 欧美1区视频| 一区二区在线观看视频在线观看| 香蕉久久夜色精品国产使用方法| 亚洲一区二区三区在线播放| 欧美日韩在线不卡| 日韩一级大片| 午夜精品电影| 国产私拍一区| 欧美在线视频一区二区| 久久久久久有精品国产| 欧美国产综合视频| 亚洲第一毛片| 一区二区久久| 欧美色一级片| 亚洲欧美日韩专区| 久久亚洲精品伦理| 韩日欧美一区| 欧美大尺度在线| 99一区二区| 久久成人国产| 欧美日本一区二区三区| 久久久久久亚洲精品杨幂换脸| 韩国女主播一区| 欧美成人国产一区二区| 亚洲精品小视频在线观看| 亚洲欧美成人综合| 一区二区亚洲| 欧美日韩国产限制| 午夜国产一区| 欧美韩国在线| 亚洲女同性videos| 怡红院av一区二区三区| 欧美激情精品久久久久久蜜臀| 99精品欧美一区| 久久久久网址| 亚洲卡通欧美制服中文| 国产精品午夜视频| 免费成人小视频| 久久色在线播放| 永久免费毛片在线播放不卡| 午夜精品一区二区在线观看| 久久久久一区二区| 亚洲欧美另类在线观看| 国产专区一区| 欧美另类69精品久久久久9999| 亚洲一区二区在线免费观看视频| 一本久久a久久精品亚洲| 久久久久久伊人| 夜夜狂射影院欧美极品| 美国十次成人| 亚洲欧美日韩综合aⅴ视频| 亚洲国产精品激情在线观看| 国产精品日韩高清| 欧美精品一区在线| 久久久蜜桃精品| 亚洲专区欧美专区| 亚洲精品欧洲| 美日韩丰满少妇在线观看| 亚洲免费在线视频| 亚洲精品一二三| 原创国产精品91| 国产精品视频最多的网站| 欧美精品观看| 欧美成人情趣视频| 久久嫩草精品久久久精品一| 亚洲欧美日韩视频二区| 中日韩美女免费视频网站在线观看| 奶水喷射视频一区| 久久青草欧美一区二区三区| 性做久久久久久久免费看| 亚洲欧美激情四射在线日 | 日韩亚洲视频在线|