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

放了快2個(gè)月了……(準(zhǔn)確來說放了2年了,本沙茶從2年前就開始捉這道猥瑣題……)
DLX重復(fù)覆蓋的幾點(diǎn)說明:
(1)必須有啟發(fā)函數(shù)優(yōu)化,否則TLE;
(2)不需要二分下界,只要將目前f值(f=g+h,即實(shí)際深度加上啟發(fā)函數(shù)值)與目前求得的最優(yōu)解比較即可,f>=最優(yōu)解即剪枝;
(3)刪一整列(delcol)操作時(shí),可以從任意一個(gè)結(jié)點(diǎn)開始刪(不一定要向精確覆蓋那樣非要從列頭開始),但是,開始的那個(gè)結(jié)點(diǎn)不刪!恢復(fù)(resucol)時(shí)也不恢復(fù)開始的那個(gè)結(jié)點(diǎn)!這是為了在接下來的橫向遍歷中不受影響。由于不刪開始結(jié)點(diǎn),所以在將最優(yōu)列刪除時(shí),需要循環(huán)一次刪除一次,恢復(fù)一次。

代碼:(RQNOJ P89)

#include <iostream>
#include 
<stdio.h>
using namespace std;
#define re(i, n) for (int i=0; i<n; i++)
#define re1(i, n) for (int i=1; i<=n; i++)
#define re3(i, l, r) for (int i=l; i<=r; i++)
const int MAXN = 61, MAXM = 61, INF = ~0U >> 2;
struct DLnode {
    
int r, c, U, D, L, R;
} d[MAXN 
* MAXM];
int n, m, nodes, rowh[MAXN], cols[MAXM], res = INF;
void init_d()
{
    re3(i, 
0, m) {
        d[i].r 
= 0; d[i].c = 0; d[i].U = d[i].D = i; d[i].L = i - 1; d[i].R = i + 1;
    }
    d[
0].L = m; d[m].R = 0;
    memset(rowh, 
0, n + 1 << 2); memset(cols, 0, m + 1 << 2); nodes = m + 1;
}
void add_node(int r, int c)
{
    d[nodes].r 
= r; d[nodes].c = c; d[nodes].U = d[c].U; d[nodes].D = c; d[c].U = nodes; d[d[nodes].U].D = nodes;
    
int rh = rowh[r];
    
if (rh) {
        d[nodes].L 
= d[rh].L; d[nodes].R = rh; d[rh].L = nodes; d[d[nodes].L].R = nodes;
    } 
else d[nodes].L = d[nodes].R = rowh[r] = nodes;
    cols[c]
++; nodes++;
}
void init()
{
    scanf(
"%d%d"&m, &n);
    init_d();
    
int k, x;
    re1(i, n) {
        scanf(
"%d"&k);
        re(j, k) {
            scanf(
"%d"&x); add_node(i, x);
        }
    }
}
void delUD(int x)
{
    d[d[x].U].D 
= d[x].D; d[d[x].D].U = d[x].U;
}
void resuUD(int x)
{
    d[d[x].U].D 
= d[d[x].D].U = x;
}
void delLR(int x)
{
    d[d[x].L].R 
= d[x].R; d[d[x].R].L = d[x].L;
}
void resuLR(int x)
{
    d[d[x].L].R 
= d[d[x].R].L = x;
}
void delcol(int c)
{
    
for (int i=d[c].D; i != c; i = d[i].D) delLR(i);
}
void resucol(int c)
{
    
for (int i=d[c].U; i != c; i = d[i].U) resuLR(i);
}
int h()
{
    
bool vst[MAXM]; memset(vst, 0, m + 1);
    
int z = 0;
    
for (int i=d[0].R; i; i = d[i].R) if (!vst[i]) {
        vst[i] 
= 1; z++;
        
for (int j=d[i].D; j != i; j = d[j].D) for (int k=d[j].R; k != j; k = d[k].R) vst[d[k].c] = 1;
    }
    
return z;
}
void dfs(int v)
{
    
if (v + h() >= res) return;
    
if (!d[0].R) {res = v; return;}
    
int min = INF, x;
    
for (int i=d[0].R; i; i = d[i].R) if (cols[i] < min) {min = cols[i]; x = i;}
    
for (int i=d[x].D; i != x; i = d[i].D) {
        delcol(i);
        
for (int j=d[i].R; j != i; j = d[j].R) delcol(j);
        dfs(v 
+ 1);
        
for (int j=d[i].L; j != i; j = d[j].L) resucol(j);
        resucol(i);
    }
}
void pri()
{
    printf(
"%d\n", res);
}
int main()
{
    init();
    dfs(
0);
     pri();
    
return 0;
}

總結(jié):DLX精確覆蓋和重復(fù)覆蓋其實(shí)是有大用的,很多搜索問題都可以轉(zhuǎn)化為這兩種問題,效率奇高無比,且寫起來也很容易(只是在建模的時(shí)候可能有點(diǎn)猥瑣,下面的模板,和網(wǎng)絡(luò)流一樣,10min的事),至于NOIP2009引出的數(shù)獨(dú)系列問題,精確覆蓋可以直接秒殺。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品日本| 国产三级欧美三级| 亚洲专区免费| 一本色道久久综合亚洲精品高清 | 性欧美xxxx视频在线观看| 在线中文字幕一区| 亚洲欧美国产视频| 久久精品一区二区三区中文字幕 | 久久成人精品视频| 欧美国产第二页| 久久精品国产第一区二区三区| 国产亚洲欧美一区| 国产婷婷色一区二区三区四区| 欧美一区二区三区喷汁尤物| 亚洲九九爱视频| 久久九九久久九九| 欧美在线视频观看免费网站| 99re66热这里只有精品4| 亚洲永久视频| 蜜桃av一区二区三区| 亚洲精品中文在线| 欧美一级片在线播放| 欧美华人在线视频| 欧美日韩在线一区二区三区| 国产欧美在线视频| 91久久视频| 午夜一级在线看亚洲| 亚洲成人资源网| 欧美电影打屁股sp| 亚洲一区二区三区高清不卡| 麻豆精品精华液| 国产欧美欧洲在线观看| 在线欧美三区| 亚洲永久在线| 亚洲国产欧美日韩精品| 亚洲视频高清| 欧美激情一区二区三级高清视频| 国产精品日韩欧美一区二区三区| 亚洲国产三级网| 一区二区三区www| 美女日韩在线中文字幕| 亚洲一区二区在线视频| 欧美大胆成人| 国产精品欧美日韩久久| 一区二区三区 在线观看视频 | 国产精品一区免费在线观看| 91久久精品www人人做人人爽 | 亚洲综合日韩在线| 免费亚洲电影在线| 国产亚洲一区在线播放| 亚洲高清视频一区| 久久亚洲春色中文字幕久久久| 农夫在线精品视频免费观看| 亚洲欧美日韩人成在线播放| 欧美性猛片xxxx免费看久爱| 亚洲清纯自拍| 午夜在线电影亚洲一区| 欧美久久久久久| 在线免费精品视频| 99国产精品久久久久久久成人热| 一区二区久久久久| 亚洲国产成人精品久久久国产成人一区| 亚洲免费视频观看| 欧美区在线播放| 亚洲精选视频免费看| 欧美成人精品一区| 免费的成人av| 久久久另类综合| 国产中文一区二区| 久热re这里精品视频在线6| 久久精品卡一| 亚洲激情网站| 亚洲精品日产精品乱码不卡| 欧美性生交xxxxx久久久| 在线视频一区二区| 日韩小视频在线观看专区| 欧美精品一区二区三区一线天视频 | 欧美日韩亚洲一区三区| 日韩一二在线观看| 99re66热这里只有精品3直播| 欧美日韩国产在线播放| 在线一区二区视频| 亚洲综合导航| 亚洲第一区在线观看| 亚洲人在线视频| 欧美视频不卡| 久久久精品网| 欧美激情亚洲综合一区| 欧美色另类天堂2015| 亚洲在线观看免费| 亚洲欧美另类在线| 极品尤物一区二区三区| 亚洲第一在线综合在线| av成人动漫| 久久精品国产清自在天天线 | 欧美专区在线观看一区| 午夜欧美理论片| 亚洲高清不卡在线| 日韩视频免费观看高清完整版| 国产日韩一区二区| 亚洲四色影视在线观看| 国产精品蜜臀在线观看| 久久精品1区| 毛片一区二区| 欧美一区二区三区精品 | 久久中文在线| 亚洲国产毛片完整版 | 国产精品五区| 欧美国产日韩免费| 国产精品国产馆在线真实露脸 | 在线视频中文亚洲| 亚洲片区在线| 久久久久99精品国产片| 亚洲男人天堂2024| 欧美**字幕| 久久久综合网| 国产精品乱人伦一区二区| 亚洲第一伊人| 一区二区三区在线免费视频 | 欧美激情一区二区三区不卡| 久久久久久9| 国产精品久久久久久模特| 亚洲福利av| 亚洲福利视频网| 欧美在线视频全部完| 亚洲欧美综合一区| 欧美性大战久久久久久久蜜臀| 91久久黄色| 亚洲理伦电影| 欧美黄色免费| 亚洲黄色有码视频| 亚洲国产mv| 久久综合九色九九| 欧美成人资源| 亚洲日本无吗高清不卡| 玖玖在线精品| 欧美成人精品一区二区| 亚洲国产另类久久久精品极度| 久久夜色精品一区| 欧美a级片一区| 依依成人综合视频| 久久综合色一综合色88| 欧美福利影院| 亚洲美女诱惑| 欧美色精品在线视频| 亚洲午夜一二三区视频| 欧美在线视频免费| 在线观看不卡av| 欧美黄色网络| 夜夜嗨av一区二区三区| 午夜精品久久久久| 欧美人牲a欧美精品| 国产精品大片wwwwww| 99国内精品久久| 一区二区三区久久| 性久久久久久久久| 欧美电影免费| 亚洲精品欧美专区| 欧美在线一区二区三区| 免费在线成人av| 国产精品一区二区三区乱码| 亚洲午夜久久久久久久久电影网| 久久久久久久久蜜桃| 国产精品青草综合久久久久99| 一区二区成人精品| 性色av一区二区三区| 一区二区三区在线高清| 欧美激情 亚洲a∨综合| 亚洲视频第一页| 免费黄网站欧美| 一本高清dvd不卡在线观看| 国产精品网红福利| 蜜桃伊人久久| 亚洲制服丝袜在线| 欧美不卡在线视频| 午夜视频一区| 1000精品久久久久久久久| 欧美日韩午夜视频在线观看| 亚洲欧美在线一区二区| 欧美激情精品久久久久久黑人 | 久久久91精品| 中文精品在线| 亚洲第一级黄色片| 国产欧美va欧美不卡在线| 欧美巨乳在线| 久久综合导航| 欧美在线视频一区| 亚洲午夜三级在线| 最新亚洲激情| 久久久免费观看视频| 中文精品视频| 99视频精品在线| 亚洲黄色av| 韩国精品在线观看| 国产精品视频xxxx| 欧美日韩综合另类| 欧美另类人妖| 欧美电影在线| 久久一区二区三区四区五区| 欧美一进一出视频|