poj 2992
约束的个数。
代码:
#include<iostream> #include<fstream> using namespace std; int n,m; long long ans; int a[432][432]; int b[432]; void read(){ // ifstream cin("in.txt"); int i,j,k; for(i=2;i<=431;i+=2) a[i][2]=a[i/2][2]+1; for(i=3;i<=431;i+=2) if(b[i]==0) { a[i][i]=1; for(j=2*i;j<=431;j+=i) { a[j][i]=a[j/i][i]+1; b[j]=1; } } for(i=2;i<=431;i++) for(j=2;j<=i;j++) a[i][j]+=a[i-1][j]; while(cin>>n>>m){ ans=1; for(i=2;i<=n;i++) ans*=a[n][i]-a[n-m][i]-a[m][i]+1; cout<<ans<<endl; } } int main(){ read(); return 0; }