long long factorial(int n)
{long long m = 1;for(int i=1;i<=n;i++)m*=i;return m;
}
long long C(int n,int m)
{return factorial(n)/(factorial(m)*factorial(n-m));//可能会溢出
}
正解:
long long C(int n,int m)
{if(m<n-m) m = n-m;long long ans = 1;for(int i=m+1;i<=n;i++) ans *= i;for(int i=1;i<=n-m;i++) ans /= i;return ans;
}
others:
long long C(int n,int m)
{long long ans = 1;for(int i=1;i<=m;i++)ans = ans * (n-i+1)/i;return ans;
}