母函数最终模板(备忘录)

来源:互联网 发布:杨闻萍审计 知乎 编辑:程序博客网 时间:2024/06/04 01:35
#include <iostream>#include <cstring>using namespace std;// Author: Tanky Woo// www.wutianqi.comconst int _max = 10001;// c1是保存各项质量砝码可以组合的数目// c2是中间量,保存每一次的情况int c1[_max], c2[_max];int main(){    int nNum;   //    int n;    int T;    cin>>T;    while(T--)    {        cin >> nNum >>n;int val[1005],num[1005];        memset(c1,0,sizeof(c1));        memset(c2,0,sizeof(c2));        for(int i=0;i<n;i++)        {cin>>val[i]>>num[i];}for(int i=0;i<=nNum&&i<=num[0]*val[0];i+=val[0])   // ---- ①        {            c1[i] = 1;            c2[i] = 0;        }        for(int i=1; i<n; i++)   // ----- ②        {            for(int j=0; j<=nNum; ++j)   // ----- ③            {                for(int k=0; k+j<=nNum&&k<=num[i]*val[i]; k+=val[i])  // ---- ④                {                    //cout<<j<<k<<j+k<<endl;                    c2[j+k] += c1[j];                }            }            for(int j=0; j<=nNum; ++j)     // ---- ⑤            {                c1[j] = c2[j];                c2[j] = 0;            }        }        cout << c1[nNum] << endl;    }    return 0;}

1 0
原创粉丝点击