第一题,直接把所有年龄的情况列举出来第二题,动态规划int main() { int a, b; // 全选 // 选择单个 // 复制所选 // 粘贴所复制的文本 int T; cin>>T; int maxOP = 0; vector OP(T, 0); for(int i=0;i cin>>OP[i]; maxOP = max(maxOP, OP[i]); } vector dp(maxOP + 10, INT_MAX); dp[1] = 0; dp[2] = 3; //dp[8] = 8; // dp[9] = 10; // dp[9] = 4 + 3 + 1 (3 + 3 + 3) // 1 = 0 // 2 = 3 // 3 = 4 // 4 = for(int i=3;i for(int j=2;j if(i % j == 0) dp[i] = min(dp[i], dp[j] + (i/j)+1); //如果第j是第i的倍数,可以累计(i/j)个i dp[i] = min(dp[i], dp[j] + (i-j) + 2); //这个后面才想到,必须要加这个,这个表示第i个可以使用单个复制粘贴到第j个 } dp[i] = min(dp[i], 1 + i); //第i个使用1个来解决 } for(int i=0;i cout }}第三题,没想到暴力也能过,直接暴力贪心,选取最大没访问过的房间攻击或者直接加当前战斗力的1/10,暴力就可以。第四题,模拟永杰无间,题目太长,就是模拟题,没写直接交卷了。