母函数的一些简单想法(HDU2110)

// 母函数解决的问题
// n 种物品,每个有一个wi,组合成total价值有多少种组合方案
// 将组合问题转换为 幂级数上的相乘问题(important) (Orz)
// #include<iostream>
// #include<cstdio>
// #include<cstring>
// using namespace std;
// int n,a[105],b[105],m,s[10010],t[10010];
// int main()
// {
//     while(~scanf("%d",&n),n)
//     {
//         m=0;
//         for(int i=0; i<n; i++)
//         {
//             scanf("%d%d",&a[i],&b[i]);
//             m+=(a[i]*b[i]);
//         }
//         if(m%3!=0)
//         {
//             printf("sorry\n");
//             continue;
//         }
//         memset(s,0,sizeof(s));
//         memset(t,0,sizeof(t));
//         m/=3;
//         for(int i=0; i<=b[0]&&i*a[0]<=m; i++)
//         {
//             s[i*a[0]]=1;
//         }
//         for(int i=1; i<n; i++)
//         {
//             for(int j=0; j<=m; j++)
//                 for(int k=0; k<=b[i]&&k*a[i]+j<=m; k++)
//                 {
//                     t[k*a[i]+j]+=s[j];
//                     t[k*a[i]+j]%=10000;
//                 }
//                 for(int j=0; j<=m; j++)
//                 {
//                     s[j]=t[j];
//                     t[j]=0;
//                 }
//         }
//         if(s[m]!=0)
//         {
//             printf("%d\n",s[m]);
//         }
//         else printf("sorry\n");
//     }
//     return 0;
// }

 

上一篇:Ajax异步刷新地址栏url改变(利用Html5 history.pushState实现)


下一篇:【数学(矩阵加速)】石头游戏