Code Forces 414B 很不错的双手,以促进合规

时间:2025-02-03 20:05:44

http://codeforces.com/problemset/problem/414/B

题目挺不错的。留个纪念,活动脑筋不错的题目

#include<iostream>
#include<cstdio>
#include<list>
#include<algorithm>
#include<cstring>
#include<string>
#include<queue>
#include<stack>
#include<map>
#include<vector>
#include<cmath>
#include<memory.h>
#include<set> #define ll long long #define eps 1e-8 #define inf 0xfffffff const ll INF = 1ll<<61; using namespace std; //vector<pair<int,int> > G;
//typedef pair<int,int > P;
//vector<pair<int,int> > ::iterator iter;
//
//map<ll,int >mp;
//map<ll,int >::iterator p; #define MOD 1000000007 vector<int> G[2555]; int dp[2555][2555]; void init() {
for(int i=1;i<=2000;i++)
for(int j=1;j<=i;j++)
if(i%j == 0)
G[i].push_back(j);
} int main() {
init();
int n,k;
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++)
dp[1][i] = 1;
for(int i=2;i<=k;i++) {
for(int j=1;j<=n;j++) {
for(int kk=0;kk<G[j].size();kk++) {
int tmp = G[j][kk];
dp[i][j] += dp[i-1][tmp];
dp[i][j] %= MOD;
}
}
}
int ans = 0;
for(int i=1;i<=n;i++)
ans = (ans + dp[k][i])%MOD;
printf("%d\n",ans);
}

版权声明:本文博主原创文章,博客,未经同意不得转载。