随笔分类 - 题解
蒟蒻的题解
摘要:Polyomino 题解 Meaning 给定三个字符矩阵,求它们能不能拼在一起变成一个 的全部是 # 的矩阵。 Solution 大模拟。说简单也不简单,很复杂;但是说难呢,又不难。 思路:搜索每一个矩阵的状态。 0x001 旋转矩阵 一个字符矩阵,考虑顺时针旋转 $90
阅读全文
摘要:Festival 题解 Meaning 给定 和 ,还有 个正整数 ,对于每个 ,求出 中第一个大于等于 的整数和 的差。 Solution 题目保证 数组单增,所以就可以用二分函数 lower_bo
阅读全文
摘要:321-like Searcher 题解 题意简述 给一个正整数 ,求出第 个从左到右每个数位依次严格递减的数。 思路 可以去参考一下 P1218。 很容易想到 dfs。枚举首位数字,然后构造一个 位的从左到右每个数位依次严格递减的数。 计算一下可以得出:最多有
阅读全文
摘要:Relative Position 题解 题目保证不矛盾,就可以直接 vector 建图,然后 dfs 一遍,边权为 表示坐标的差,从 开始搜索,设点 有一条无向边, ,最后如果没有被标记
阅读全文
摘要:RGB Substring (hard version) 题解 思路 首先观察得出:字符串 的长度为 子串为 RGBRGBRGB...... 的子串,这个子串只有三种可能:RGBRGBRGB......,GBRGBRGBR......,BGBRGBRG......。 所以自然可以想出
阅读全文
摘要:Promising String (easy version) 题解 Promising String (easy version) 题目传送门 思路 求区间内 + 比 - 多的个数。考虑 ,可以得出一个 的算法:两个指针枚举左端点和右端点,前缀和 $O(1
阅读全文
摘要:题解 思路 不用关心每个数的每一位是什么、哪几位相同,我们只需记录每个数出现了哪几个数字,可以使用类似于状态压缩的思想记录每个数的状压形式,比如一个数为 ,那么他的状态压缩形式为 。 当两个数在状态压缩表示下有一位相同,我们就认为这两个数是一对,每个二进制数
阅读全文
摘要:题目传送门 题解 这一题 范围都不大,可以枚举 中的每个 ,修改 的值后进行判断。 需要注意:最后要输出一个换行符(我因为这个 WA 了不知道多少发)。 AC Code #include<iostream> using namespace std; c
阅读全文
摘要:题目传送门 题解 对于每次操作,只需要修改两个数,自然会想到 dfs 枚举每次操作修改哪两个数,但是题目不允许你这么做,因为时间复杂度是 ,而 ,直接写会炸掉。 但是我们可以使用一种叫做《搜索剪枝》的神奇东西。 这题的剪枝是一种可行性剪枝,判断每个数是否合法,如果不
阅读全文
摘要:题解 思路 不用关心每个数的每一位是什么、哪几位相同,我们只需记录每个数出现了哪几个数字,可以使用类似于状态压缩的思想记录每个数的状压形式,比如一个数为 ,那么他的状态压缩形式为 。 当两个数在状态压缩表示下有一位相同,我们就认为这两个数是一对,每个二进制数
阅读全文