题意简述 给定两个01字符串 s,t,你需要在 s 之中插入任意个字符串 t,使得新的字符串 s 中相邻的两个数都不同。 题意分析 由于字符串只有 $0$ 和 $1$,所以最终的字符串一定是 01010101 或 10101010 的形式。而插入的字符串是固定的,所以首先考虑字符串 s,如果一个字符串中同时出现 11 和 00 时,字符串一定不能“变好”。 然后我们考虑字符串 t 的形...
9.15 明天第一轮,今天晚上去机构集训,凌晨才到家,玩了会游戏颓废就睡了。 9.16 一进孝中就看见xp和hky,和他们一块去了考场。 因为去的比较早,在考场溜达了一圈,和朋友聊了一会,就准备J组比赛了。J组的题不难,做到11:30的时候可以提前交卷,但我又继续做了会,和lyx一块出的考场。还拍了一张孝中的CSP海报。 中午睡了一觉,对付一口饭就去考场了,下午依然很瞌睡,S组题目有点难,瞎做...
分析 很简单的一道构造题。 因为第一个数是必取的,所以只需要从第二个数开始判断,即如果 b_{i-1}\le b_i,就不需要在这两个数之间添加别的数。 反之,如果不满足,我们就需要在这两个数之间添加一个 b_i,这样就可以保证它满足 b_{i-1}\le b_i 的条件。 所以我们只需要先跑一次循环计算出 m 的值,将 m 和 a_1 提前输出,然后循环输出剩下的数即可。 Code ...
题目简述 在 $8 \times 8$ 的点网格上,一个由小写拉丁字母组成的单词从上到下垂直地写在一列中。你需要找到他并输出 题目分析 由题意可得,网格中只会有一个单词,所以只需要自上而下遍历网格,如果是字母就输出即可。 Code #include <bits/stdc++.h> using namespace std; #define ll long long #define int...
题目简述 在 n 个回答中找到长度不超过 $10$ 且质量最高的回答。 题目分析 就是个普通模拟,如果 a_i\le 10,就打擂台找最大质量,更新序号。 Code #include <bits/stdc++.h> using namespace std; #define ll long long #define int ll const int MaxN = 1e6 + 100;...
看到讨论区都是二分,实际上这道题用贪心来写非常简单 题目分析 首先将当前塔台的位置加上通讯距离(即 a+b )看作为右边界,通过题目不难得出一个贪心策略:如果当前塔台 i 能到达的最右边界比往后的塔台 i+m 位置还要靠右,就可以忽略塔台 i+1 到 i+m。转化一下,我们只需要每次记录可以到达的最右边界,如果当前塔台的位置不在最右边界的范围内,就可以更新答案取超频的最大值。 因此,我们...
其实就是个模拟题,按题意模拟即可 题意简述 题意可以理解为有三个人个人在 $3\times3$ 的方格中下井字棋,如果三个相同的棋子连成一条线,就可以判定输赢。如果没有人赢则输出 DRAW 。 分析 连接的方式可分为三类:横行、竖列、对角线。共八种情况,所以只需要判断是否满足这八种情况然后输出即可。注意在判断的时候要排去 . ,不能把空行也算作一种。具体可看代码。 代码 inline void S...
搜索 搜索就是对状态空间进行枚举来查找所有种可能来找到问题的最优解或可行解的个数。搜索一般时间或空间复杂度很高,所以有很多优化方法,如记忆化、减枝等。 注意 不同的搜索题目大都不相同,DFS/BFS两种算法更像是方法,要理解它的思想并灵活运用,死套模板是没有用的。要根据不同的问题来选择更好的方法来解决。 一.DFS 深度优先搜索 定义 一种用于遍历或搜索树或图的算法(俗称 不撞南墙不回头算法 ) ...