预处理函数求助
查看原帖
预处理函数求助
366595
zty_luogu楼主2021/8/30 19:55
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define inf 0x3f3f3f3f
#define linf 0x3f3f3f3f3f3f3f3f
//#define Int int
//#define Long long
//#define Double double
//#define For for
//#define While while
//#define Do do
const int N=1010;
ll dp[2010][2010]={};
vector<int> q[2010];
inline void f(int n){
	for(int j=1;j<=n;j++){
		for(int i=1;i*i<=j;i++){
			if(j%i==0){
				q[j].push_back(i);
				if(j/i!=i)
					q[j].push_back(j/i);
			}
		}
	}
} 
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n,k;
	cin>>n>>k;
	f(n);
	for(int i=1;i<=k;i++)
		dp[i][1]=1;
	for(int j=1;j<=n;j++)
		dp[1][j]=1;
	for(int i=2;i<=k;i++){
		for(int j=2;j<=n;j++){
			for(int l=0;l<q[j].size();l++){
				if(j%l==0)
					dp[i][j]+=dp[i-1][q[j][l]]%1000000007;
			}
		}
	}
//	for(int i=1;i<=k;i++){
//		for(int j=1;j<=n;j++){
//			cout<<dp[i][j]<<' ';
//		}
//		cout<<endl;
//	}
	ll ans=0;
	for(int i=1;i<=n;i++)
		ans+=dp[k][i]%1000000007;
	cout<<ans%1000000007;
	return 0;
}

蒟蒻的求因子f函数RE了,求助找错

2021/8/30 19:55
加载中...