日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tjoi2018D2T2(luogu4590) 游园会 (状压dp)

發布時間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tjoi2018D2T2(luogu4590) 游园会 (状压dp) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題解勸退系列

設長的那個串是A,短的那個串是B。

那我們在如果已經知道某個A的時候,A[1..i]和B[1..j]的最長公共子序列$f[i][j]=max\{f[i-1][j],f[i][j-1],f[i-1][j-1]+(A[i]==B[i])\}$

于是可以遞推來枚舉A,順手把NOI的情況判掉。但這復雜度顯然過不了。

注意到在推的時候,每新加一個字符,就可以由f[i-1]推出f[i],也就是說,我們根本不用記遞推出來的這個A具體是什么,只要記住這個f[i]就可以了。

怎么記呢?注意到f[i][j]只能等于f[i][j-1]或者f[i][j-1]+1,也就是說,我們可以先差分這個f[i],然后狀壓就能記下來了。

設trans[s][k]表示原本f數組狀態是s、新加了一個k字符,轉移到的狀態

那么可以得到遞推式$g[i+1][trans[s][k]]=\sum{g[i][s]}$,g[N][s]就是最后狀態s的情況數,只要統計一下s中1的個數,記到答案里就行了。

然而還要判NOI

其實很簡單,只要給g多記一維,用來表示現在這個狀態已經匹配到了NOI的幾位就可以了

(0,1,2通過"N"轉移到1;1通過“O”轉移到2;2通過“I”轉移到3(這個情況不合法))

要開滾動數組

1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6 #include<map> 7 #include<cmath> 8 #include<ctime> 9 #include<set> 10 #define pa pair<int,int> 11 #define lowb(x) ((x)&(-(x))) 12 #define REP(i,n0,n) for(i=n0;i<=n;i++) 13 #define PER(i,n0,n) for(i=n;i>=n0;i--) 14 #define MAX(a,b) ((a>b)?a:b) 15 #define MIN(a,b) ((a<b)?a:b) 16 #define CLR(a,x) memset(a,x,sizeof(a)) 17 #define rei register int 18 using namespace std; 19 const int maxn=1010,maxk=16,maxs=32768,p=1e9+7; 20 typedef long long ll; 21 22 ll rd(){ 23 ll x=0;char c=getchar();int neg=1; 24 while(c<'0'||c>'9'){if(c=='-') neg=-1;c=getchar();} 25 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar(); 26 return x*neg; 27 } 28 29 int N,K,M; 30 int wd[maxk],ans[maxk],ne[3][3]; 31 int f[2][maxs][3],trans[maxs][3],cnt[maxs]; 32 33 inline void modadd(int &x,int y){x=(x+y)%p;} 34 35 int main(){ 36 //freopen(".in","r",stdin); 37 rei i,j,k,l; 38 N=rd(),K=rd();M=1<<K; 39 i=0;while(i<K){ 40 char c=getchar(); 41 if(c=='N') wd[++i]=0; 42 else if(c=='O') wd[++i]=1; 43 else if(c=='I') wd[++i]=2; 44 } 45 REP(i,0,M-1){ 46 REP(j,0,2){ 47 int s=0,sum=0,lst=0,now=0; 48 REP(k,1,K){ 49 if(wd[k]==j) now=sum+1; 50 if(i&(1<<(k-1))) sum++; 51 if(wd[k]!=j) now=sum; 52 s+=(now>lst)<<(k-1);lst=MAX(lst,now); 53 }trans[i][j]=s;cnt[i]=sum; 54 //printf("%d %d %d %d\n",i,j,s,sum); 55 } 56 } 57 ne[1][1]=2;ne[0][0]=ne[1][0]=ne[2][0]=1; 58 bool b=0;f[0][0][0]=1; 59 REP(i,0,N-1){ 60 //memcpy(f[b],f[b^1],sizeof(f[b])); 61 CLR(f[b^1],0); 62 REP(j,0,M-1){ 63 REP(l,0,2){if(!f[b][j][l]) continue; 64 REP(k,0,2){ 65 if(l==2&&k==2) continue; 66 modadd(f[b^1][trans[j][k]][ne[l][k]],f[b][j][l]); 67 //printf("f[%d][%d][%d]=%d -%d> ",i,j,l,f[b][j][l],k); 68 // printf("f[%d][%d][%d]=%d\n",i+1,trans[j][k],ne[l][k],f[b^1][trans[j][k]][ne[l][k]]); 69 } 70 } 71 }b^=1; 72 } 73 REP(i,0,M-1){ 74 REP(j,0,2) 75 modadd(ans[cnt[i]],f[b][i][j]); 76 }REP(i,0,K) printf("%d\n",ans[i]); 77 return 0; 78 }

?

轉載于:https://www.cnblogs.com/Ressed/p/9599409.html

總結

以上是生活随笔為你收集整理的tjoi2018D2T2(luogu4590) 游园会 (状压dp)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色吊丝一区二区 | av毛片在线播放 | 欧美高清在线视频 | 日韩毛毛片 | 国产51视频 | 日韩中出| 日韩在线观看第一页 | 日本视频www色 | 精品久久影视 | 午夜免费视频网站 | 狠狠干影院 | 国产欧美日韩综合精品一区二区三区 | wwwxxx在线观看 | 精品久久久久久久久久久久久久 | 亚洲一久久 | 精品久久久久久久久久久aⅴ | 欧美成人免费看 | 免费精品视频在线观看 | 国精产品一区一区三区视频 | 51ⅴ精品国产91久久久久久 | 精品一二三区久久aaa片 | 国内一级视频 | 久久国产精品精品国产色婷婷 | 97精品熟女少妇一区二区三区 | a成人在线 | 精品一区二区三区精华液 | 成人日皮视频 | 69视频在线免费观看 | 国产欧美一区二区三区在线看蜜臂 | 九九热免费精品视频 | 欧美第1页 | 欧美区一区二 | 成熟了的熟妇毛茸茸 | 草草视频在线观看 | 国产精品制服诱惑 | 四虎影 | 亚洲综合视频网站 | 亚洲最大中文字幕 | 亚洲xx网 | 伊在线久久丫 | www.男人天堂 | 国产精品成人av久久 | 黄色大片aa | 欧美三级手机在线观看 | 视频一区二区三区四区五区 | 亚洲第一黄色网址 | 国产精品伦一区二区三区 | 男生插女生视频在线观看 | 日本女人hd | 亚洲欧美国产高清 | 少妇无码一区二区三区免费 | 都市激情男人天堂 | 在线免费观看日韩av | av影音先锋 | 亚洲av成人精品日韩在线播放 | 激情五月婷婷丁香 | 中年夫妇啪啪高潮 | 97精品视频| 天堂av网址 | 国产91色在线 | 97成人资源 | 中文在线永久免费观看 | 天天躁日日躁狠狠躁 | 99久久精品国产一区二区成人 | 日韩欧美中文字幕在线视频 | 99久久精品免费看国产四区 | 国产高清在线视频观看 | 天天操夜夜夜 | 国产亚洲精品久久久久久久久动漫 | 在线观看成人动漫 | 久久精品人人爽 | cekc老妇女cea0 | 美女自卫网站 | 一区二区三区 中文字幕 | 久久久久二区 | 两口子交换真实刺激高潮 | 亚洲视频国产精品 | 欧美性猛交乱大交3 | 中文字幕成人在线观看 | 少妇被躁爽到高潮 | 俄罗斯美女一级爱片 | 日韩诱惑 | 97色伦图片 | 少妇视频网站 | 中文在线观看高清视频 | 男人天堂怡红院 | 婷婷五月情 | 国产在线一二三区 | 日韩爽爽视频 | 性喷潮久久久久久久久 | 波多野结衣女同 | 欧美裸体视频 | 色多多污| 91 高清 在线 制服 偷拍 | 国产精品麻豆一区 | 中文字幕一区二区三三 | 久热青草 | 免费黄av | 电车痴汉在线观看 |