2025/10/31 总结

求和

情况

  • 时间:\(30min\)
  • 预期:\(100\)
  • 实际:\(100\)

知识点

  • 贪心

思路

这道题我们可以先把题目变为 \(\sum_{i=1}^{2n}\frac{i}{f(i)}-\sum_{i=1}^n\frac{i}{f(i)}\),所以我们可以每次加上除以 \(2^j\) 为奇数的数,所以 \(O(\log 2n)\) 处理即可。

取模 2

情况

  • 时间:\(30min\)
  • 预期:\(100\)
  • 实际:\(100\)

知识点

  • \(\text{dfs}\)

思路

我们思考 \((x\bmod a)\bmod b\) 如果 \(a<b\) 那么就变为 \(x\bmod a\),所以当是最优方案时,肯定先模大的,再模小的。所以我们先把数组排序后,在枚举哪些数在 \(b\) 中即可,复杂度 \(O(2^n)\)

整除 2

情况

  • 时间:\(1h\)
  • 预期:\(100\)
  • 实际:\(100\)

知识点

  • \(\text{dp}\)

思路

这是一个比较板的 \(\text{dp}\),我们定义 \(dp_i\) 表示前 \(i\) 个数的答案最大为多少。所以 \(dp_i=dp_{i-1}\),我们再找到上一个位置 \(j\) 使得 \(a_{j+1}+a_{j+2}+\cdots+a_{i-1}+a_i\)\(p\) 的倍数,所以 \(dp_i=\max(dp_i,dp_j+1)\)

差异

情况

  • 时间:\(2h\)
  • 预期:\(100\)
  • 实际:\(100\)

知识点

  • 滑动窗口,差分

思路

我们枚举 \(i\)\(j\)\(i\) 为两个子串距离,\(j\) 为起始位置,所以只需要计算差分,然后计算原数组后,再计算前缀和即可。

posted @ 2025-10-31 15:56  小熊涛涛  阅读(1)  评论(0)    收藏  举报