01 2021 档案
摘要:题目链接 链接 翻译 translation 题解 只要不存在长度为 或 的回文, 就不会有更长的回文啦。 所以,每个位置都和前一个以及前前一个位置判断一下是否相同就好, 然后如果某个位置修改过。 就把它当做是一个通配符,不会和任何一个字符相同。 代码 #include <b
阅读全文
摘要:题目链接 链接 翻译 每个人初始都有 张牌,每个单位时间,他们会对自己手上的牌进行如下操作: 每个人都把自己一半的下取整到左边,上取整到右边相邻的一个人。 但是有一个人搞特殊,他不会给左边相邻的人,而是将自己全部的牌都给右边相邻的人。 每过一个单位时间,你都可以询问某个位置上的人有多少张
阅读全文
摘要:题目链接 链接 翻译 让你在 个点上放老师,使得这 个点任意两个点之间都有路径。 但是所给的路径要激活才能用,而激活的条件就是路径连接的两个点中,有一个点放了老师。 当然一条路径不能两个端点都放老师,不然他们会打架 2333 输出任意一个合法的方案即可。 题解 随便找一个没染
阅读全文
摘要:题目链接 链接 翻译 每秒钟会对原数组进行如下操作,对于每一个数组中的元素。找到整个数组中和它【相关】的数字,将这些数字全都乘起来 然后用来代替这个元素。 【相关】表示两个数字的最小公倍数和最大公因数的商是一个完全平方数。 然后让你回答 个询问,表示 秒钟之后,数组中每个元素
阅读全文
摘要:题目链接 链接 翻译 translation 题解 值比较大(对应的礼物贵)的优先安排小的 ,这样节省的 最多。 因为每个 都是要满足的,当然尽可能用便宜点的搪塞最好。。塑料友情。。 代码 #include <bits/stdc++.h> #de
阅读全文
摘要:题目链接 链接 翻译 给你一个 的方格,让你用 的骨牌,横着或者竖着放,铺满整个方格。 其中有一些被黑色方块阻挡,不能放骨牌。问你可不可行。 题解 首先考虑 整个方格 第一列,如果两行都是空的。 那么考虑第二列的几种情况: 第二列也是空的,那么第一列放竖的没问题。 第
阅读全文
摘要:题目链接 链接 翻译 注意是有向图,不然这题读起来会觉得题目很奇怪。。 题解 bfs 求最短路 d[1..n],然后对于 的边连实线,否则连虚线。 就可以做 dp 了,对于实线 dp[x] = min(dp[x],dp[y]),对于虚线 dp[x] = min(dp[x],d
阅读全文
摘要:题目链接 链接 翻译 给你一棵树,树上的每一个节点都带有权值。 让你统计这样的点 的个数,使得以 为根的时候,所有以 开始,以某个节点结束的路径中每个节点的权值 都是唯一的,即每个权值都只出现了一次。 称这样的 为 \(distinctive\ roo
阅读全文
摘要:题目链接 链接 翻译 可以从数组中任意一个位置开始出发走一条路径,每一步可以往走到相邻的一个格子(左或右)。但是不能超过边界。 问你所有不同的长度为 的路径的和是多少。 然后要支持更新操作实时回答这个路径和。 题解 和 都只有 ,其实是比较容易
阅读全文
摘要:题目链接 链接 翻译 给你 个多重集,第 个集合有 个数字。 从两个不同集合中分别取出数字 和 ,则从两个集合中分别删去 和 , 然后在第 个集合中(取出 的那个集合) 加入元素 \(x-y
阅读全文
摘要:题目链接 链接 翻译 让你统计"山"和“山谷"的总个数,要求这个总个数最少。 你可以修改某个数字为任意整数。 题解 首先对于初始的数组,统计一下山加上山谷的总数 然后枚举第 个位置,现在要对第 个位置上的数字进行修改了。 最直接的想法就是,改了 之
阅读全文
摘要:题目链接 链接 翻译 translation 题解 98901234.... 写题解的时候才发现题目名字里有个ORZ 代码 /* */ #include <bits/stdc++.h> using namespace std; int main(){ #ifdef LOCAL_DEFINE freo
阅读全文
摘要:题目链接 链接 翻译 translation 题解 线段树,只要维护一个以 为下标,然后线段树上的值维护的是这个范围的 里面, 最小的 所在的位置即可。 涉及到一些离散化的操作,所以代码看起来比较丑陋。 然后查询的时候,如果想找小于 和 的
阅读全文
摘要:题目链接 链接 翻译 translation 题解 贪心,随便想想也能猜到,排序。然后哪一方最大的数字大(奇数和偶数),就抢对方的(对方的奇偶性数字大),或者拿自己的(自己的奇偶性大)。 这样,对于拿的那个人来说收益总是最大的。 不够了就随遇而安就行。。 代码 #include <bits/stdc
阅读全文
摘要:题目链接 链接 翻译 translation 题解 动规。 类似这样?...倒着推一下,注意边界就行。 代码 #include <bits/stdc++.h> #define lson l,mid,rt*2 #define rson mid+1,r
阅读全文
摘要:题目链接 链接 翻译 translation 题解 先用 然后用 补来凑n/2就行。 挺显然的一个贪心。 代码 #include <bits/stdc++.h> #define lson l,mid,rt*2 #define rson mid+1,r,rt*2+1 #defi
阅读全文
摘要:题目链接 链接 翻译 题解 看到除2就知道是个暴力题了。 模拟就行,log复杂度除不了几下的。 然后每次分成的碎片个数乘 也很快就会超过 了,为了防止爆 中间就停下来吧。 代码 #include <bits/stdc++.h> #define lson l,m
阅读全文
摘要:题目链接 链接 翻译 给你一个排列,其中有一些位置上的数字被remove了,让你全都放回去。 定义相邻两个数字如果奇偶性不同, 值加 。 求数字全都放回去之后 的值的最小值。 题解 设 表示前 个数字放了 \(j
阅读全文