| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
容斥原理In Reply To:brute force Posted by:ysjjovo at 2011-03-13 21:01:52 #include<iostream>
using namespace std;
int cnt[6];
__int64 c(__int64 n,__int64 m){
if(n==0)return 1;
__int64 mul=1;
for(int i=1;i<=m;i++,n--)mul=mul*n/i;
return mul;
}
int main(){
fill(cnt,cnt+6,2);//0,max
int n;
while(cin>>n){
if(n&1)cout<<0;
else{
n/=2;
if(cnt[n]>2)cout<<cnt[n];
else{
int s,i;
for(s=1;s<n*9;s++){
__int64 sum=0;
for(i=0;i<=n;i++){
if(s<10*i)break;
__int64 t=c(n,i)*c(s-10*i+n-1,s-10*i);
if(i&1)t=-t;
sum+=t;
}
cnt[n]+=sum*sum;
}
cout<<cnt[n];
}
}
cout<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator