麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

[BZOJ1898][Zjoi2005]Swamp 沼澤鱷魚(dp+矩陣優化)

2019-11-10 19:51:42
字體:
來源:轉載
供稿:網友

題目描述

傳送門

題解

f(i,j)表示時間為i時到達j的方案數,答案即為f(k,t) condi(i,j)表示時間為i時j有沒有鱷魚0/1 那么f(i,j)=∑(v,j)∈Ef(i?1,v) 并且當condi(i,j)=1時f(i,j)=0 時間復雜度O(kn2),考慮怎么優化 因為鱷魚的周期只可能是234,所以f的轉移是以12為周期循環的 那么我們可以把這12次轉移用矩陣處理出來,由于矩陣滿足結合律,可以先將它們乘起來然后快速冪k/12次,最后在乘上剩余的 矩陣的構造方法就是一個n*n的矩陣,如果f(i-1,j)可以轉移到f(i,v),那么在a[j,v]置1

ljw學姐的測試題,完完全全想出來了正解,然而被埋在了一個奇怪的地方——long long不能做位運算! GG

代碼

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define N 55#define Mod 10000int n,m,s,t,k,x,y,nfish;int T[N],p[N][5];bool condi[N][N],flag[N][N];struct data{int a[N][N];}unit,st,A,trans[N],ans;data cheng(data a,data b){ data ans;memset(ans.a,0,sizeof(ans.a)); for (int k=1;k<=n;++k) for (int i=1;i<=n;++i) for (int j=1;j<=n;++j) ans.a[i][j]=(ans.a[i][j]+a.a[i][k]*b.a[k][j])%Mod; return ans;}data fast_pow(data a,int p){ data ans=unit; for (;p;p>>=1,a=cheng(a,a)) if (p&1) ans=cheng(ans,a); return ans;}int main(){ scanf("%d%d%d%d%d",&n,&m,&s,&t,&k);++s,++t; for (int i=1;i<=m;++i) { scanf("%d%d",&x,&y);++x,++y; flag[x][y]=flag[y][x]=1; } scanf("%d",&nfish); for (int i=1;i<=nfish;++i) { scanf("%d",&T[i]); for (int j=1;j<=T[i];++j) scanf("%d",&p[i][j]),++p[i][j]; } for (int i=1;i<=min(k,12);++i) for (int j=1;j<=nfish;++j) { int now=p[j][i%T[j]+1]; condi[i][now]=1; } for (int i=1;i<=n;++i) unit.a[i][i]=1; st.a[1][s]=1; for (int i=1;i<=min(k,12);++i) { for (int j=1;j<=n;++j) if (!condi[i][j]) for (int l=1;l<=n;++l) if (flag[l][j]) trans[i].a[l][j]=1; } A=unit; for (int i=1;i<=min(k,12);++i) A=cheng(A,trans[i]); if (k>12) { A=fast_pow(A,k/12); for (int i=1;i<=k%12;++i) A=cheng(A,trans[i]); } ans=cheng(st,A);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产99视频精品免视看9 | 中国精品久久 | 国产男女 爽爽爽爽视频 | 欧美a视频| 性少妇videosexfreexx | 99欧美视频 | 91午夜视频 | 精品国产一区二区三区久久久狼牙 | 毛片在哪看 | 久久影院yy6080 | 久久精品一区二区三 | 欧美激情精品久久久久久久久久 | 黄色一级片在线免费观看 | 一级毛片在线看 | 亚洲成人在线视频网站 | 国产精品视频免费在线观看 | 九九热精品视频在线播放 | 久久国产精品网 | 五月婷婷第四色 | 国产成人视屏 | 精品二区在线观看 | 日韩黄色片免费看 | 校花被肉干高h潮不断 | 一级片999| 国产午夜精品一区二区三区四区 | 蜜桃免费在线 | 鲁丝片一区二区三区免费入口 | 深夜福利视频绿巨人视频在线观看 | 91精品国产777在线观看 | av成人免费| 国产女厕一区二区三区在线视 | 在线视频观看国产 | 一级免费特黄视频 | 伊人在线视频 | 国产免费最爽的乱淫视频a 毛片国产 | 国产91丝袜在线播放 | 亚洲网站免费看 | 日韩av片在线免费观看 | 97久久精品一区二区三区观看 | 制服丝袜日日夜夜 | 久久久久久久久久网站 |