ruoliunianer的专栏

//10e9只能是矩阵递推!!!!//矩阵递推+二分幂#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <vector>#include <algorithm>#include <cmath>using namespace std;typedef long long LL;const int Mod=1000000007;struct Matrix{LL a[6][6];Matrix(int x){memset(a,0,sizeof(a));for(int i=0;i<6;i++) a[i][i]=x;}Matrix operator*(const Matrix& b)const{Matrix c(0);for(int i=0;i<6;i++)for(int j=0;j<6;j++)for(int k=0;k<6;k++){c.a[i][j]+=(a[i][k]*b.a[k][j])%Mod;c.a[i][j]%=Mod;}return c;}};Matrix fast_mod(Matrix x,int r){Matrix ret(1);while(r){if(r&1) ret=ret*x;x=x*x;r>>=1;}return ret;}int main(){Matrix st(0);for(int i=0;i<6;i++)for(int j=0;j<6;j++)st.a[i][j]=4;int n,m;cin>>n>>m;for(int i=0;i<m;i++){int u,v;cin>>u>>v;st.a[u-1][v-1]=0; st.a[v-1][u-1]=0;}Matrix ret=fast_mod(st,n-1);LL ans=0;for(int i=0;i<6;i++)for(int j=0;j<6;j++){ans+=(4*ret.a[i][j])%Mod;ans%=Mod;}cout<<ans<<endl;return 0;}

,你要以乐观的态度看待这个世界,你会发现世界是如此得美好

ruoliunianer的专栏

相关文章:

你感兴趣的文章:

标签云: