MagicScaring

HDU2082

Dec 27th, 2017
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. #define M 50
  6. int num[27];
  7. int c1[M+1],c2[M+1];
  8. void solve()
  9. {
  10.     memset(c1,0,sizeof(c1));
  11.     memset(c2,0,sizeof(c2));
  12.     int i,j,k;
  13.     for(i=0;i<=num[1]*1;i++)
  14.     c1[i]=1;
  15.     for(i=2;i<=26;++i)
  16.     {
  17.         for(j=0;j<=M;++j)
  18.         {
  19.             for(k=0;k+j<=M&&k<=num[i]*i;k+=i)
  20.             {
  21.                 c2[k+j]+=c1[j];
  22.             }
  23.         }
  24.         for(j=0;j<=M;++j)
  25.         {
  26.             c1[j]=c2[j];
  27.             c2[j]=0;
  28.         }
  29.     }
  30. }
  31. int main()
  32. {
  33.     int i,t;
  34.     scanf("%d",&t);
  35.     while(t--)
  36.     {
  37.         for(i=1;i<=26;++i)
  38.         scanf("%d",&num[i]);
  39.         solve();
  40.         int sum=0;
  41.         for(i=1;i<=M;++i)
  42.         {
  43.             sum+=c1[i];
  44.            // printf("%d=%d\n",i,c1[i]);
  45.         }
  46.         printf("%d\n",sum);
  47.  
  48.     }
  49.   //  cout << "Hello world!" << endl;
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment