[SDOI2009]HH去散步
来源:互联网 发布:k60数据手册 编辑:程序博客网 时间:2024/05/12 17:53
第一道矩乘也就不口胡了吧
代码还是很simple的~
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k,l) for (int j=k;j>=l;--j)#define N 121#define mod 45989using namespace std;int n,m,T,S,P,cnt,st[N],ne[N],to[N];struct _233{int poi[N][N];void clear(){rep(i,1,2*m) rep(j,1,2*m) poi[i][j]=0;}} a,b;_233 operator*(_233 x,_233 y){_233 p;p.clear();rep(i,1,2*m) rep(k,1,2*m) if (x.poi[i][k]>0) rep(j,1,2*m)p.poi[i][j]=((p.poi[i][j]+x.poi[i][k]*y.poi[k][j])%mod);return p;}void add(int k,int l){to[++cnt]=l;ne[cnt]=st[k];st[k]=cnt;}_233 pow(int k){_233 l=b,ans=b;k--;if (k<0) ans.clear(),k=0;while (k){if (k&1) ans=ans*l;l=l*l;k=k>>1;}return ans;}int main(){scanf("%d%d%d%d%d",&n,&m,&T,&S,&P);rep(i,1,m){int k,l;scanf("%d%d",&k,&l);add(k,l);add(l,k);a.poi[k][l]++;a.poi[l][k]++;}if (T<=1){if (T==0) puts("0");else printf("%d\n",a.poi[S][P]);system("pause");return 0;}rep(i,1,2*m)for (int j=st[to[i]];j;j=ne[j])if (((i+1)^(j+1))^1) b.poi[i][j]++;b=pow(T-1);int ans=0;for (int i=st[S];i;i=ne[i])for (int j=st[P];j;j=ne[j])ans=(ans+b.poi[i][((j+1)^1)-1])%mod;printf("%d\n",ans);system("pause");}
0 0
- 【SDOI2009】HH去散步
- [SDOI2009]HH去散步
- [SDOI2009]HH去散步
- [SDOI2009]HH去散步
- [BZOJ1875] [SDOI2009] HH去散步
- 【bzoj1875】【SDOI2009】【HH去散步】
- 【SDOI2009】【BZOJ1875】HH去散步
- bzoj1875: [SDOI2009]HH去散步
- [bzoj1875][SDOI2009]HH去散步
- 1875: [SDOI2009]HH去散步
- [JZOJ1088]【SDOI2009】HH去散步
- BZOJ1875: [SDOI2009]HH去散步
- luogu2151 [SDOI2009]HH去散步
- bzoj1875: [SDOI2009]HH去散步
- bzoj1875: [SDOI2009]HH去散步
- 【BZOJ 1875】 [SDOI2009]HH去散步
- 1875: [SDOI2009]HH去散步 矩阵乘法
- 【47.40%】【BZOJ 1875】[SDOI2009]HH去散步
- 237. Delete Node in a Linked List
- [BZOJ 1858][Scoi2010]序列操作(线段树)
- 在不同浏览器中调试javaScript代码(三)
- 今天给自己分享下我的心得体会
- 从头文件生成函数描述
- [SDOI2009]HH去散步
- [DP]挖地雷
- java面试题(转)
- 洛谷——P1101 单词方阵
- Android 退出多Activity的application的方式
- Educational Codeforces Round 7 C. Not Equal on a Segment 并查集
- Python selenium的简单使用
- 使用PCF8951进行AD/DA转换
- Java基础知识(一)