博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[TJOI2017] 可乐
阅读量:5101 次
发布时间:2019-06-13

本文共 1296 字,大约阅读时间需要 4 分钟。

水题啊......

把原地不动看成是自环,把自爆看作是走到了0点就行了。

所有点都能走到0点,而0点只能走到自己。

然后邻接矩阵自乘即可。

1 #include
2 #include
3 #include
4 using namespace std; 5 6 const int mod=2017; 7 8 struct matrix 9 {10 int a[35][35];11 }e;12 13 int n,m,t;14 15 matrix mul(matrix &q,matrix &w)16 {17 matrix ret;18 for(int i=0;i<=n;i++)19 {20 for(int j=0;j<=n;j++)21 {22 ret.a[i][j]=0;23 for(int k=0;k<=n;k++)24 ret.a[i][j]+=q.a[i][k]*w.a[k][j];25 ret.a[i][j]%=mod;26 }27 }28 return ret;29 }30 31 matrix ksm(matrix b,int p)32 {33 matrix ret=b;34 p--;35 while(p)36 {37 if(p&1)ret=mul(ret,b);38 b=mul(b,b);39 p>>=1;40 }41 return ret;42 }43 44 int main()45 {46 scanf("%d%d",&n,&m);47 for(int i=1;i<=m;i++)48 {49 int x,y;50 scanf("%d%d",&x,&y);51 e.a[x][y]=e.a[y][x]=1;52 }53 for(int i=1;i<=n;i++)54 {55 e.a[i][0]=e.a[i][i]=1;56 }57 e.a[0][0]=1;58 scanf("%d",&t);59 matrix ans=ksm(e,t);60 int sum=0;61 for(int i=0;i<=n;i++)62 sum=(sum+ans.a[1][i])%mod;63 printf("%d",sum);64 return 0;65 }

 

转载于:https://www.cnblogs.com/eternhope/p/9974630.html

你可能感兴趣的文章
整理string类常见方法的使用说明
查看>>
模态与非模态对话框
查看>>
cl-closure-template 中文乱码的解决方法
查看>>
noip模拟赛 排序
查看>>
POJ3616
查看>>
HDU1050
查看>>
Linux 自学shell
查看>>
UniGUI 如何进行 UniDBGrid 的单元 Cell 的计算 ?
查看>>
z-index解决弹出层遮罩层覆盖子div不能显示输出的问题
查看>>
信息安全系统设计基础第十周学习总结
查看>>
记得初学JS时候练个九九乘法表都写的要死要活
查看>>
算法第四章实验报告
查看>>
Hdu 2069 Coin Change
查看>>
Python网络编程(socket模块、缓冲区、http协议)
查看>>
开博留念
查看>>
四重解法---P1047 校门外的树
查看>>
大马猴队-Alpha阶段项目复审
查看>>
集群时间同步
查看>>
Ubuntu16.04 + Win 10 双系统 时间同步,启动项顺序,NumLock指示灯常亮
查看>>
win10桌面显示我的电脑设置
查看>>