• P1356 数列的整数性


    P1356 数列的整数性
    打的骗分,在多组数据的情况下还能骗到分,可以了。又TMD是dp。
    f[i][j]表示+-第i个数能否达到%p后的余数j,如果f[n][0]==true就可以。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<ctime>
     7 #include<set>
     8 #include<cstring>
     9 #define inf INT_MAX
    10 #define For(i,a,b) for(register int i=a;i<=b;i++)
    11 #define p(a) putchar(a)
    12 #define g() getchar()
    13 
    14 using namespace std;
    15 int x;
    16 bool f[10010][110];
    17 int t;
    18 int mod,n,sum;
    19 
    20 void in(int &x)
    21 {
    22     int y=1;
    23     char c=g();x=0;
    24     while(c<'0'||c>'9')
    25     {
    26     if(c=='-')
    27     y=-1;
    28     c=g();
    29     }
    30     while(c<='9'&&c>='0')x=x*10+c-'0',c=g();
    31     x*=y;
    32 }
    33 void o(int x)
    34 {
    35     if(x<0)
    36     {
    37         p('-');
    38         x=-x;
    39     }
    40     if(x>9)o(x/10);
    41     p(x%10+'0');
    42 }
    43 
    44 int left(int x,int mod)
    45 {
    46     return (x%mod+mod)%mod;
    47 }
    48 
    49 int main()
    50 {
    51     in(t);
    52     while(t--)
    53     {
    54     memset(f,false,sizeof(f));
    55     in(n),in(mod);
    56     in(x);
    57     f[1][left(x,mod)]=1;
    58     f[1][left(-x,mod)]=1;
    59     For(i,2,n)
    60     {
    61         in(x);
    62         For(j,0,mod-1)
    63         f[i][j]=f[i-1][left(j-x,mod)]|f[i-1][left(j+x,mod)];
    64     }
    65     if(f[n][0])
    66     puts("Divisible");
    67     else
    68     puts("Not divisible");
    69     }
    70      return 0;
    71 }
  • 相关阅读:
    callback的实现
    TypeId和IidManager关系
    Blocks的实现
    定义返回Block的函数
    NSString与奇怪的retainCount
    ARC下的所有权修饰符
    MAC安装MYSQL
    找出数组中只出现一次的数
    写在复习MVC后
    UITableViewHeaderFooterView的封装
  • 原文地址:https://www.cnblogs.com/war1111/p/7738197.html
Copyright © 2020-2023  润新知