摘要:
A 氵 B 把奇数和偶数拿出来分别排序,然后按下标归并,看看得出的结果是不是排好序的。 C 如果头尾同色,就找有没有 \(k\) 个位置和头尾同色; 否则从头找 \(k\) 个和头同色的,然后再在这之后找 \(k\) 个和尾同色的。 D 把每个前缀和相邻的相减,得出的结果: 有大于 \(n\) 的, 阅读全文
摘要:
A 给出一个由 \(1,-1\) 组成的序列。一次操作可以让一个数变相反。 要多少次操作,才能让整个序列和非负且积等于 \(1\)。 大 氵题。 B 定义两个数 \(A,B\) 有一个价值:每一位上的数字的差的绝对值相加。(位数不足用前导零补齐) 给出区间 \(l,r\),问在 \([l,r]\) 阅读全文
摘要:
A 题意:给一个长度为 \(n\) 的全是 \(1\) 的数列,Alice 先操作,Bob 交替。每次操作选择至少两个(可以更多)相等的数字,删除它们,在序列中加入它们的和。直到有人不能操作为止,这个人就获胜了。 问:谁有必胜策略? 很简单的结论题。 如果 \(n\geq 5\),Alice 把 \ 阅读全文
摘要:
A 只要不是全 \(1\) 即可。 B 二分完成天数。 C \(x\) 取差的 \(gcd\),\(a_{n+1}\) 见缝插针。 D 用一个 map 记录按原始操作序列,要走到 \((x,y)\) 的所有可能前缀。同时 \(px[i]\) 记录走了前 \(i\) 步到的 \(x\) 坐标,\(py 阅读全文
摘要:
A 若 \(k>1\),冒泡排序;否则判断是否已经有序。 B 初始令 \(a_i=2^{30}-1\),然后对于每个限制,让 \(a_i\leftarrow a_i\&M_{i,j},\;\;a_j\leftarrow a_j\&M_{i,j}\)。 C 答案可以视作:总和 + 一个后缀 + 一个短 阅读全文
摘要:
A 模拟。 B 模拟。 C 若原字符串中出现次数最多的次数为 \(cnt\),答案是 \(\max(n\%2,cnt\times 2-n)\)。 D 二分 \(k\),然后从后往前倒,计算出到达每个线段可能到的区间。 E \(a+b+c\) 不能进位,否则 \(digitsum()\) 就会至少 \ 阅读全文
摘要:
C 先用桶记录各个位数量。 对于每次询问,从低位到高位扫,先用掉一个当前位的,然后把当前位的全部转化成 \(cnt/2\) 个更高位的。 D 有一个思路:其实删区间可以视作删相邻两个数。(然鹅这题不是按这个思路做的) 考虑整个序列最小值,它一定不会被删。 这个最小值把序列剖成两半。递归进入左右分别计 阅读全文
摘要:
重点在 E B 如果 \(lcm(a,b)\neq b\),则是一个答案。 否则答案是 \(b\times\frac{b}{a}\)。 C 先前缀和。设前缀和 \(s_i\)。考虑 \(s_i\) 减去多少个 \(1\)。 若 \(i=1\),直接就是答案; 否则答案会减去 \(s_i/3\),若 阅读全文
摘要:
多次判断 \(x\) 是否是 \(y\) 的祖先: 对每一个点,增加两个属性: 刚搜到这个点的时间戳,和回溯这个点的时间戳。 \(x\) 是 \(y\) 的祖先,等价于 \(x\) 开始到结束的区间 包含 \(y\) 开始到结束的区间。(如\([1,7]\)包含\([2,3]\),则\([1,7]\ 阅读全文