1 条题解
-
0
C++ :
/* 2014/11/19 吴成兵于图书馆 O157/Z782组合数学及应用P2 */ #include<iostream> #include<cmath> using namespace std; int myc(int n,int r){ if(n==r)return 1; if(n==r+1) // return myc(n,n-r); return n; int sum=1; for(int i=1;i<=r;i++) sum*=(n-i+1)/(i); // for(int i=0;i<r;i++) // sum*=(n-i)/(i+1); return sum; } int mya(int n,int r){ int sum=1; for(int i=0;i<r;i++) sum*=n-i; return sum; } int f(int n){ if(n==0)return 1; int s=n; while(--n)s*=n; return s; } int main(){ // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); int n,r; // while(cin>>n&&n){//[r,n]区间 1<r<n<=~3333 {n=300; r=1;// int na=n/3,nb=n%3; int ra=(r)/3,rb=(r)%3; // cout<<"-------------\n"; // cout<<f(n)<<" "<<f(r)<<endl; // long long ll1=f(n) // cout<<myc(n,r)<<" "<<mya(n,r)<<endl; //// cout<<f(n)/f(n-r)/f(r)<<" "<<f(n)/f(n-r)<<endl; // [1,n] && n%3==0 // cout<<3*myc(na,3)+(int)pow(na,3)<<endl; // [1,n] cout<<nb*myc(na+1,3)+(3-nb)*myc(na,3)+(int)pow(na+1,nb)*(int)pow(na,3-nb)<<endl; // [r,n] int al,bl,cl;//求a,b,c长度,易错 if(rb==0&&nb==0){al=bl=na-ra;cl=na-ra+1;} if(rb==1&&nb==0){al=bl=cl=na-ra;} if(rb==2&&nb==0){al=na-ra-1;bl=cl=na-ra;} if(rb==0&&nb==1){al=na-ra+1;bl=na-ra;cl=na-ra+1;} if(rb==1&&nb==1){al=na-ra+1;bl=na-ra;cl=na-ra;} if(rb==2&&nb==1){al=bl=cl=na-ra;} if(rb==0&&nb==2){al=bl=cl=na-ra+1;} if(rb==1&&nb==2){al=bl=na-ra+1;cl=na-ra;} if(rb==2&&nb==2){al=cl=na-ra;bl=na-ra+1;} // cout<<myc(al,3)+myc(bl,3)+myc(cl,3)+al*bl*cl<<endl; // cout<<"-------------\n"; } return 0; }
- 1
信息
- ID
- 794
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者