#include <cstdio> unsigned int dp[1000][1001]; void initDP(int n, int k) { for (size_t i = 0; i <= n; i++) { dp[0][i] = 1; } for (size_t i = 1; i <= k; i++) { dp[i][1] = 0; } } int countPermutation(int n, int k) { initDP(n, k); for (size_t row = 1; row <= k; row++) { for (size_t col = row + 1; col <= n; col++) { dp[row][col] = 0; dp[row][col] += dp[row][col - 1] * (row + 1); dp[row][col] += dp[row - 1][col - 1] * (col - row); dp[row][col] %= 2017; } } return dp[k][n]; } int main() { int n, k; scanf("%d%d", &n, &k); printf("%d", countPermutation(n, k)); return 0; }
点赞 评论

相关推荐

每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
UltramanZ:原帖不是个研究生导师吗,到你这成你mt了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务