[cpp] <p>/*</p><p> </p><p>題意:中文題 ... 指數型母函數詳解神牛博文 : http://hi.baidu.com/nicker2010/item/fea0a5254208a30377272ced </p><p> </p><p>*/</p><p> #include<iostream> #include<cmath> using namespace std; #define manx 13 double a[manx],b[manx]; /// a[] 代表第一個式子的系數 long long num[manx]; long long fan(int n){ long long sum=1; for(int i=1;i<=n;i++) sum *= i; return sum; } int main(){ int n,m; while(cin>>n>>m){ memset(b,0,sizeof(b)); memset(a,0,sizeof(a)); for(int i=0;i<n;i++) cin>>num[i]; for(int i=0;i<=num[0];i++) a[i] = 1.0/fan(i); for(int i=1;i<n;i++){ /// 從第二個式子開始... for(int j=0;j<manx;j++) /// 第一個式子 x^j,系數是 a[j]... for(int k=0;k<=num[i]&&k+j<manx;k++){ /// 第二個式的 x^k ,x^K的系數是 1 b[j+k] += a[j]/fan(k); } for(int j=0;j<manx;j++){ a[j] = b[j]; b[j] = 0; } } printf("%.lf\n",a[m]*fan(m)); /// 組合數學 } }</p>