2017 10 5 最短母串 思考記錄

2021-08-09 00:11:23 字數 1157 閱讀 6728

這個題n<=15,可以用10表示選取情況下的最優值

預處理兩個串之間的連線關係,然後列舉狀態轉移

然而這個題還要輸出方案,,而且還不讓你開空間。

所以只能記錄前繼動態判斷、、

所以十分難寫難調

碼:#include#include#includeusing namespace std;

int n,i,j,k,l,lin[15],g1[16385][15],g2[16385][15],er[15],daan2[15],p;

long long f[16385][15],lj[16][16],ans=2147483647,len[15];

char str[15][60],daan[800],lin3[800];

bool wu[15];

int main()

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

if(l>len[i])wu[i]=1;

}

}int cnt=0;

for(i=1;i<=n;i++)

n=cnt;

for(i=1;i<=n;i++)//最長延伸(第乙個串)

if(k+l-2==len[i])

}}

}er[0]=1;

for(i=1;i<=n;i++)

er[i]=er[i-1]*2;

for(i=1;i<=n;i++)

f[er[i-1]][i-1]=len[i],g1[er[i-1]][i-1]=-1;

for(i=1;i=1;l--)//倒著放字元

}for(l=lj[j+1][k+1]+1;l<=len[k+1];l++)

// for(int y=1;y<=lin4;y++)cout<=1;l--)

}// for(int y=1;y<=lin4;y++)cout}

if(huan)

}

if(f[i|er[k]][k]>f[i][j]+len[k+1]-lj[j+1][k+1])

}

}

}for(i=0;ilin3[j])

if(daan[j]

bzoj1195 最短母串

1 練習了string類,string中查詢,找不到的話會返回 s.npos乙個變數,而不是返回一般的s.end 2 這題還可以,ac自動機上狀壓bfs,找最短路,實際上是dp,但是轉移都是加1,所以可以抽象為邊長為一從起始狀態到最終狀態的最短路,因為為邊長1,又可以轉為bfs。3 include ...

習題 最短母串(狀壓)

題目 記憶體限制 512 mib時間限制 1000 ms標準輸入輸出 題目型別 傳統評測方式 文字比較 題目描述 給定n 個字串 要求找到乙個最短的字串 使得這 n個字串都是它 的子串。輸入格式 第一行是乙個正整數 表示給定的字串的個數 以下的 n 1 行,每行有乙個全由大寫字母組成的字串。輸出格式...

loj10061 最短母串

記憶體限制 512 mib 時間限制 1000 ms 標準輸入輸出 題目型別 傳統 評測方式 文字比較 上傳者 1bentong 提交提交記錄 統計討論 測試資料 題目描述 原題來自 hnoi 2006 給定 n個字串 s1,s2,sn 要求找到乙個最短的字串 t,使得這 n 個字串都是 t 的子串...