@[白桦树](/space/show?uid=38148) %%%YPY大佬AK NOI
by Nero_Claudius @ 2018-10-15 16:42:28
我也赞同
这题直接暴力dp就能过,谁还打矩阵快速幂啊 ~~其实是我不会打~~
[测评记录](https://www.luogu.com.cn/record/43148795)
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N=35,M=105,T=1e5+5,mod=2017;
int t,n,m,tot,s;
int head[N],ans[N],f[N],now[N];
struct edge{
int next,to;
}e[M<<1];
void add(int u,int v)
{
e[++tot].next=head[u];
e[tot].to=v;
head[u]=tot;
return;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
scanf("%d",&t);
f[1]=1;
for(register int i=1;i<=t;i++)
{
for(register int j=1;j<=n;j++)
now[j]=0;
for(register int j=1;j<=n;j++)//自爆
ans[j]=(ans[j]+f[j])%mod;
for(register int j=1;j<=n;j++)//往外走
for(register int k=head[j];k;k=e[k].next)
now[e[k].to]=(now[e[k].to]+f[j])%mod;
for(register int j=1;j<=n;j++)
f[j]=(f[j]+now[j])%mod;
}
for(register int i=1;i<=n;i++)
ans[i]=(ans[i]+f[i])%mod;
for(register int i=1;i<=n;i++)
s=(s+ans[i])%mod;
printf("%d",s);
return 0;
}
```
by Ink_Render @ 2020-12-04 10:16:41