#include<stdio.h> #define M 20000 int max(int a,int b) { return a>b?a:b; } int min(int a,int b) { return a>b?b:a; } int main() { int N; scanf("%d",&N); int dp[10][M]= {0}; int m = 3, i, j, k; for(j = 1; j <= N; j++) { dp[1][j] = j; } for(i = 2; i <= m; i ++) { for(j = 1; j <= N; j++) { dp[i][j] = j; for(k = 1; k <= j; k++) { int num = max(1+dp[i-1][k-1], 1+dp[i][j-k]); dp[i][j] = min(dp[i][j], num); } } } printf("%d", dp[m][N]); return 0; }
解题思路:
注意事项:
参考代码:
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:756 |
字符串的输入输出处理 (C语言代码)浏览:1085 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:416 |
众数问题 (C语言代码)浏览:717 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:620 |
简单的a+b (C语言代码)浏览:491 |
1199题解浏览:707 |
用筛法求之N内的素数。 (C语言代码) 详解………………浏览:1195 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:558 |