第二周作业讲评

dongri-chaoxi / 2023-07-29 / 原文

T356483 巧克力工厂

注意事项

  • \(log_2(n)\) 运算示范:
long long n = 0, cur_pow = 1;
cin >> n;
for (int pow = 0; cur_pow < k; pow ++) {
    cur_pow = 1 << pow;
}
cout << pow << endl;

犯の错误

  • 如果 \(k\)\(2\) 的整数次方,那么第二个数输出 \(0\)。其他题目需要注意类似极端情况的特判。

T356487 藏宝洞

注意事项

  • 本题看似是背包,但是这是可分割背包问题,用贪心而不是 \(dp\)

P7714 排列排序

注意事项

  • 使用双指针,记录 ptr 表示上次 maxn == i 的位置
  • 读入时记录前缀最大值 maxn,如果 maxn == i,那么对区间 \([ptr,i]\) 进行排序

犯の错误

  • 提交时忘记把调试时的 freopen 去掉,

T356495 扫地机器人

注意事项

  • 使用二分答案 & 贪心检验答案
  • 使用一个指针存储上一个扫地机器人能够扫到的最右边区域

犯の错误

  • 扫地机器人位置从小到大进行排序

P1158 导弹拦截

注意事项

  • 按照每一个导弹到 A 系统的距离进行排序,然后枚举前几个导弹分给 A 系统,则后面 \(n-i+1\) 个导弹都给 B 系统
  • 每一种情况都算出答案,取最小值即可

犯の错误

  • 变量名不用 y1,会编译错误。