随笔分类 - 题解
摘要:P11078 题解 题面 原题传送门 思路 本蒟蒻太菜了,只会用线段树。。。(准确来说这题是线段森林?) 首先很自然的想到可以按模 k 的余数来分类开线段树,这样每一次在迷雾上的操作就是区间异或,最后于是判断当前节点是否需要改就可以了,思路非常简单,打代码的时候细心点就可以过了。 当然,这样
阅读全文
摘要:P11062 题解 题面 原题传送门_ 思路 首先一眼想到分讨。 a×b≥0,即 a,b 同正负或者有一个为 0 的时候,考虑到每一次 a←a+b 或 b←a+b,只会不断地增加 |a−b|,其的
阅读全文
摘要:P11603 题解 题面 原题传送门 思路 首先,看到题目想到一个性质:对于一个数 x,x 除以一个比 x÷2 大的数的结果一定为 0,再配合上题目给不能超过 65,自然地想到二进制拆分。 首先,先判断肯定有解的情况:a=b=c=d,显然输出 \
阅读全文
摘要:P8624 题解 题面 原题传送门 思路 首先看完题目很自然的想到可以设 dpi,j 表示第 i 个骰子以 j 面朝上的方案数。 首先对立关系由于总共才 6 种情况,所以可以直接用一个二维数组 mpi,j 来存,i,j 排斥为 0,
阅读全文
摘要:CF1951D 题解 题面 原题传送门 题意 题意翻译成数学语言大概是这样的: 给定 n,k(1⩽n,k⩽1018),构造一个长度不超过 60 的正整数序列 a1,a2,a3,⋯,an,记 $b_0=n,c_i=\lfloor\
阅读全文
摘要:CF1984D 题解 题面 原题传送门 题意 (翻译没给得很清楚,一开始我还差点错了。) 给定一个字符串 s,求有多少个子串 t 满足: t≠ a。 s 可以由若干个 t 和若干个 a 组成。 组成 s 的方法至少要有一个 t。 数据范围:$2\leqslant|s
阅读全文
摘要:CF1893B 题解 题面 原题传送门 题意 给定两个数组 a,b,构造一个序列 c,使得其包含 a,b 中的所有元素,保证 a 在其中的相对顺序不变,且最长(严格)上升子序列(LIS(c))最短。 转化一下,也可以理解为,给定两个数组 a,b,要求把 b
阅读全文
摘要:CF1909D 题解 题面 原题传送门 思路 首先,看懂题后直接先观察式子,盯着盯着感觉有点感觉。 x+k=y+z,看这个式子 x,y,z 并没有什么相同的地方,一边有 k,一边没 k,所以考虑两边同时减 2k。 x+k−2k=y+z−2k,整理下。 $x-k=(y-k)+(
阅读全文
摘要:CF1909E 题解 题面 原题传送门 思路 首先,我们考虑一个灯最后亮着的条件是什么。对于一个灯的编号为 light,当且仅当按下的数列中可以被 light 整除的数的个数为奇数的时候灯会亮着。 于是很自然的想到一个很经典的结论:当且仅当一个数为完全平方数时,其因子个数为奇数。 于是就可以
阅读全文
摘要:ABC311G 题解 题面 原题传送门 题意 给定一个矩阵,求一个子矩阵是的子矩阵中的数字总和与子矩阵中的最小值的乘积最大,输出乘积即可。 前置知识 二位前缀和。 单调栈。 单调队列。 对于二位前缀和,其实很简单,看个图就懂了。 上图中红色面积=橙色面积+整个的面积-(橙色面积+蓝色面积)-(橙色面
阅读全文
摘要:CF1628D1 题解 题面 原题传送门 题意 初始时,有一个数 ans=0。 有两个人,第一个人要在 [0,k] 选出一个实数 t。 第二个人可以选择让 ans 加 t 或减 t。 总共有 n 轮,第二个人至少要操作 m 次,且两个人都会使用最优策略。 思路 容易发
阅读全文
摘要:CF358D 题解 题面 原题传送门 思路 挺好的一道 DP 题。 首先分析题目会发现这道题的 DP 有点特殊:每一个点的状态会与前后两道题的状态相互影响与改变。 而观察到,一个点 i 的状态均可以表示成如下两种情况。 先选第 i+1 个物品,再取第 i 个物品。(取物品的操作并不一定是
阅读全文
摘要:SP5150 题解 题面 原题传送门。 前置知识 并查集。 拥有 SPOJ 账号。 思路 首先这题很容易想到是并查集。(没学过的看后记。) 对于一个点 i,我们可以直接设 pai 为 i 的父节点。(跟的父节点设为自己。) 然后就是查询一个元素属于哪个集合的操作。(这很基础。) lon
阅读全文
摘要:P6312 题解 题面 原题传送门 题意 题目的意思非常简单,就是给定一个字符串 s,问 s 是否为回文串。 前置知识 哈希 (没了,真的很简单) 思路(解法) 首先,哈希都会吧?不会的先看这。 其实判断回文最简单的就是分别求从头开始和从尾开始的哈希值,比较即可。 那么哈希值又是怎么求的呢?
阅读全文
摘要:CF191A 题解 题面 原题传送门 题意 给定 n 个字符串,将其中一些字符串取出来并拼接在一起,满足拼接的前面一个字符串的结尾与拼接的后面一个字符串的开头相同,且拼接成的字符串的收尾相同。 例子:asc cdlaks sloa。 (无特殊意义,随便举的例子。) 思路 一看到
阅读全文
摘要:CF1176C 题解 题面 原题传送门 前置知识 离散化(不会的看后记) 思路 首先看题目,题目问最多要删几个数,那不妨换一个角度想,想在数组 a 中有几个数字可以不被删掉,进一步转化为求在长度为 n 的数组里有几个“好的数列”,最后拿总数 n 减去不被删掉的数即可。 实现 首先先给数组
阅读全文
摘要:CF917A 题解 题面 原题传送门 思路 看了下题目,很简单,直接从开头开始爆搜即可,枚举出一种可能,答案就加一。 问题来了,爆搜的过程呢? 容易想到,可以用一个变量 sum 动态统计当前序列未配对的左括号的数量,对于一个 si 有如下两种情况: 若 s[i] 为 (,则 sum
阅读全文
摘要:P7697 题解 前置知识 单调队列求区间最值。(可以看后记) 题面 原题传送门 思路 第一个答案 先看样例解析图: 我们需要满足题目刷的限制,保证刷子完全接触栅栏,也就是每次刷的时候不能刷到空的; 所以,我们可以求得在 i 到 i+x−1 刷的高度就是 $\min(a[j])(j\in[i
阅读全文
摘要:P5186 题解 前置知识 单调队列求区间最值。(可以看后记) 题面 原题传送门 思路 第一个答案 先看样例解析图: 我们需要满足题目刷的限制,保证刷子完全接触栅栏,也就是每次刷的时候不能刷到空的; 所以,我们可以求得在 i 到 i+x−1 刷的高度就是 $\min(a[j])(j\in[i
阅读全文