zoukankan      html  css  js  c++  java
  • [TJOI2017] 可乐

    bzoj 4887 传送门

    水题啊......

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

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

    然后邻接矩阵自乘即可。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     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 }
  • 相关阅读:
    5.24 javascrip累加求和练习
    5.23 汽车之家 界面练习
    5.22 格式与布局知识点整理
    MVC4是不是类似于html页+ashx页之间用JSON通过AJAX交换数据这种方式、?
    .net面试题
    ASP.Net1
    登陆、激活、权限
    无边框窗体
    用户控件
    弹出唯一窗口
  • 原文地址:https://www.cnblogs.com/cervusy/p/9974630.html
Copyright © 2011-2022 走看看