70266 - CSP-J第一轮同测模拟卷1-阅读程序3
统计题目(材料题)
01 #include <iostream>
02 using namespace std;
03
04 int dp[1005][1005];
05
06 int solve(int n, int m) {
07 if (m == 1) return n;
08 if (n == 0) return 0;
09 if (dp[n][m] != -1) return dp[n][m];
10 int res = 1e9;
11 for (int i=1; i<=n; i++) {
12 res = min(res, max(solve(n-i, m), solve(i-1, m-1)) + 1);
13 }
14 return dp[n][m] = res;
15 }
16
17 int main() {
18 int n, m;
19 cin >> n >> m;
20 for (int i=0;i<=n;i++) for (int j=0;j<=m;j++) dp[i][j] = -1;
21 cout << solve(n, m) << endl;
22 return 0;
23 }
||

关注我们