摘要:
做起来令人快乐的题。 首先如果 \(k\) 很小显然异或哈希,否则从分组角度考虑。 怎么分组?直接对质数取模分组即可。 然后发现草不过去,那就变成三个质数去碰,然后发现有的时候哈希冲突了,碰出来的数是错的,没关系,再来两个 bitset 直接双哈希判断,选取合适的两个质数即可通过。 哦对了,直接用数 阅读全文
摘要:
这题是有迹可循的!下面从一个思考者的角度讲述解题方法。 首先这两条限制很奇怪,但感觉都是很强的性质。所以这道题光想入手都是比较难的,先考虑怎么入手。 第二条限制相对简单,先考虑第二条限制。我们注意到,如果一个串的数字全是 \(1\),显然可以满足限制一。那限制二我们考虑将一个 \(1\) 变成 \( 阅读全文
摘要:
只参加了提高组。 初赛 赛前复习了一下哈夫曼编码然后打摆。 赛时前面的题会的都会了,不会的也带逻辑去蒙了,可能会错一两道吧。后面貌似都比较简单,但是第一个阅读程序我一开始看那个式子首先就把按位或排除了。。。后来手玩了一下发现既不是异或又不是且。。于是我就选了啥也不是,然后我第一个阅读程序扣 \(8\ 阅读全文
摘要:
少有的独自做出来的 *3000,还是很有成就感的! 集中注意力读题,首先注意到每一时刻牌数为 \(k\),而牌的种类也为 \(k\),如果实际牌的种类数小于 \(k\),那么是很简单的情况,现在考虑实际牌的种类数等于 \(k\) 的情况。 观察过程,首先发现如果有相同的牌直接丢就行,过程中还会出现没 阅读全文
摘要:
这个条件有点不好处理,考虑找一些好处理的性质来做这道题。 首先,大体思路是套路的,我们扫描 \(r\),去更新答案,然后我们考虑维护指针 \(l\),我们首先希望区间子图 \([l,r]\) 有且仅有一个简单环,考虑用 LCT 维护,具体是维护一棵树与一条边,这条边是多出来的边,显然这条边连着的点都 阅读全文
摘要:
感觉是一道很好的图论题。 首先,每个点只有一个钥匙,意味着我们点集的加入顺序是固定的。我们考虑暴力枚举每个起点,维护一个栈,考虑栈顶的强连通分量是否能连到下一个目标,如果能连到,就判断是否可以缩出新的强连通分量。 这样子我们就能暴力求出每个点作为起点的答案了。 显然,如果 \(x\) 能到达 \(y 阅读全文
摘要:
构造题做的太少了,感觉这题是非常厉害的构造题。 考虑菊花图。菊花图结构非常简单,我的做法是先让所有点颜色相同,这样如果两个人分别在叶子上就可以在根相遇,否则一定会有一人走到根上,再与叶子挨个匹配即可。 考虑链的做法。我们可以考虑把两个人往中间赶,他们肯定可以相遇。但是这种想法非常不好构造方案,想想有 阅读全文
摘要:
题目中涉及到了加法和异或,一个是进位加法,一个是不进位加法,显得很不可做。 但是我们注意到加法只加 \(1\),如果产生进位了,那会将末尾的所有 \(1\) 推平成 \(0\),而如果没有进位,则后面的位不会受到加法影响。 这启发我们挖掘这道题的过程。我们发现这个过程形似可以从低位推到高位,并且过程 阅读全文
摘要:
前两个月被这题薄纱了,最后特判了几个数据通过,现在来补。 先看简单版本,注意到后面的删除不会影响到前面的,而如果前面删除了 \(x\) 次,那么对于后面的任意一点 \(i\),只要是满足 \(i-2x\le a_i\le i\) 这个条件就可以删除。 结合数据范围容易想到设 \(f_{l,r,x}\ 阅读全文
摘要:
简单数据结构,但本蒟蒻觉得并不简单呐! 容易发现这题的几个好用的性质: 只要被第一个操作影响的都能够保持单调,容易一起维护。 操作都是全局的! 没被操作一影响的都可以表示为 \(ki+a_i\) 的形式。 利用这些性质,我们考虑把没被操作一影响的项放在 \(S\) 集合,被操作一影响的项放在 \(T 阅读全文