zoj 1202

排列組合的簡單模擬

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<stack>
#include<map>
#include<vector>
#include<deque>
#include<cmath>
using namespace std;
int main(){
	int N,i,temp;
	while(cin>>N){
		int a[13]={0};
		int sum=0,answer=1,t=1,j,k;
		for(i=0;i<N;i++){
			cin>>temp;
			a[temp]++;
			sum+=temp;
		}
		for(i=1;i<=12;i++){
			t=1;
			temp=a[i];
			while(a[i]!=0){
			for(j=1;j<=i;j++){
				t*=sum-j+1;
				t/=j;
				//cout<<i<<" ";
			}
			sum-=i;
			a[i]--;
			}
			for(j=1;j<=temp;j++)
			t/=j;
			answer*=t;//cout<<t<<" ";
		}
		cout<<answer<<endl;
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章