zoukankan      html  css  js  c++  java
  • Divisibility

    <问题分析>

    利用性质 A*B mod C= (A mod C*B mod C) mod C

                (A+B) mod C = (A mod C+B mod C) mod C

    状态转移方程 s[i,(j-a[i] mod k) mod k]=s[i-1,j]  (s[i-1,j]=1)

                      s[i,(j+a[i] mod k) mod k]=s[i-1,j] (s[i-1,j]=1)

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 
     5 int main()
     6 {
     7     int l,i,j,k,n,tag,v[10001],s[2][201];
     8     scanf("%d",&l);
     9     while(l--!=0)
    10     {
    11     scanf("%d %d",&n,&k);
    12     for(i=1;i<=n;i++)
    13      scanf("%d",&v[i]);
    14     memset(s[1],0,sizeof(int)*201);
    15     s[1][v[1]%k+k]=1;
    16     for(i=2;i<=n;i++)
    17     {
    18       memset(s[i%2],0,sizeof(int)*k*2);
    19       for(j=0;j<=2*k;j++)
    20       {
    21          if(s[(i-1)%2][j])
    22          {
    23              s[i%2][(j-k+v[i]%k)%k+k]=1;
    24              s[i%2][(j-k-v[i]%k)%k+k]=1; 
    25          }
    26       }
    27     }
    28     if(s[n%2][k])
    29        printf("Divisible
    ");
    30     else
    31        printf("Not divisible
    ");
    32     } 
    33     return 0;
    34 }
  • 相关阅读:
    数据可视化
    tkinter学习04
    小练习-----银行提款机系统
    python___docx模块
    Django【进阶篇 】
    Django之Cookie/session/防止XSS攻击
    tkinter学习03
    tkinter学习02
    AJAX
    tkinter学习01
  • 原文地址:https://www.cnblogs.com/simplesslife/p/Divisibility.html
Copyright © 2011-2022 走看看