随笔分类 - oi
关于信息技术
摘要:Cow Checkups 题解 题目大意: 对于每一个 \(c=0…n\),求出区间 \([l, r]\) 能使得翻转此区间后满足 \(\sum_{i=1}^n (a_i = b_i)\) 的值恰好为 \(c\) 的数量。 解法: 首先,我们定义两个二维数组: \(s_{l, r}\) : 以 \(
阅读全文
摘要:今天记录二分知识点。 二分是一个简单清晰,实用性强的算法。 也是本人最喜欢的算法之一。 先给出二分模板吧! int l = 1, r = n; //初始值,根据情况而定 while (l + 1 < r) { int mid = (l + r) >> 1; if (check(mid)) l = m
阅读全文
摘要:适用于线段树、平衡树等树形结构。 注意: 本文中的: \(lc(i) = (i \ll 1)\),即 \(i \times 2\)。 \(rc(i) = (i \ll 1 \mid 1)\),即 \(i \times 2 + 1\)。 一.区间修改,区间求和(求最值)(\(pushdown\)) 分
阅读全文
摘要:[AtCoder - tdpc_game] :ゲーム 题解 一道小清新 \(dp\) 题。 定义 \(dp_{i,j}\) 为第一堆山还有 \(i\) 个物品,第二堆山还有 \(j\) 个物品,すぬけ君能取得物品的最大价值。 由于只能取两座山最上面的物品,假设当前两座山分别有 \({x,y}\) 个
阅读全文
摘要:一.前言 这是一道很有趣的数学题目,用到了逆元和组合数学,非常适合新手练手。 二.题目大意: 给出一个长度为 \(n\) 的 \(01\) 数组。找出所有长度为 \(k\) 的子序列的中位数,求出其和。 妥妥的数学题~ 三.分析 首先考虑对答案的贡献。 很明显,只有 \(1\) 作为中位数时才会做出
阅读全文
摘要:atcoder 一道很有意思的模拟题啊。 思路很重要。 首先,我们只要知道连续两只动物的身份,就可以根据 \(s\) 推出所有动物的身份。 不妨假设我们知道第一只和第二只动物的身份,一共有几种情况呢? 用 \(1\) 代表羊,\(0\) 代表狼。 那么,共有 \(2^2=4\) 种情况,分别为: 0
阅读全文