建议此题加强数据(或者出加强版)

P3758 [TJOI2017] 可乐

@[白桦树](/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


|