3月30日 网易雷火服务端笔试
第一题,直接把所有年龄的情况列举出来
第二题,动态规划
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<=maxOP;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,暴力就可以。
第四题,模拟永杰无间,题目太长,就是模拟题,没写直接交卷了。
第二题,动态规划
int main() {
int a, b;
// 全选
// 选择单个
// 复制所选
// 粘贴所复制的文本
int T;
cin>>T;
int maxOP = 0;
vector
for(int i=0;i
maxOP = max(maxOP, OP[i]);
}
vector
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<=maxOP;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
}
第三题,没想到暴力也能过,直接暴力贪心,选取最大没访问过的房间攻击或者直接加当前战斗力的1/10,暴力就可以。
第四题,模拟永杰无间,题目太长,就是模拟题,没写直接交卷了。
全部评论
相关推荐
点赞 评论 收藏
转发