随笔分类 -  Codeforces

摘要:题目链接 点我跳转 题目大意 给定 \(N\) 台电脑,起初每台电脑都是关闭的 现在你可以随意打开电脑,但如果第 \(i-1\)、第 \(i+1\) 台电脑是开启的,则第 \(i\) 台电脑也会自动开启,而你无法手动开启它 问你有多少种打开电脑的方法,使得最后所有电脑都是开着的 解题思路 分成两步来 阅读全文
posted @ 2021-05-03 09:14 GsjzTle 阅读(318) 评论(2) 推荐(7)
摘要:题目链接 点我跳转 题目大意 有 T 组询问 每组询问给定三个整数 \(c,d,x\) 问有多少对 \((a , b)\) 使得 \(c\times lcm(a,b) - d\times gcd(a , b) = x\) \(1 <= t <= 10^4\),\(1<=c,d,x<=10^7\) 解 阅读全文
posted @ 2021-03-19 22:49 GsjzTle 阅读(93) 评论(0) 推荐(0)
摘要:题目链接 点我跳转 题目大意 给定一个长度为 \(N\) 的序列 \(A\) 有 \(Q\) 次操作,每次操作给定两个数 \(i\) , \(X\),使得 \(A[i] = A[i] \times X\) 问每次操作后整个序列的 \(gcd\) 为多少 (对 \(1e9+7\) 取模) 解题思路 显 阅读全文
posted @ 2021-03-07 17:17 GsjzTle 阅读(217) 评论(0) 推荐(2)
摘要:题目链接 点我跳转 题目大意 给定一个长度为 \(N\) 的序列 \(bi\) 问有多少个长度为 \(N\) 的序列 \(a\) 使得 \(b[i] = a[i]\) 或 \(b[i] = ∑a[j] , j∈[1,i]\) 解题思路 定义 $dp[i][j] $ 表示前 \(i\) 项的前缀和为 阅读全文
posted @ 2021-02-20 02:54 GsjzTle 阅读(88) 评论(0) 推荐(0)
摘要:A. Shifting Stacks 题目链接 点我跳转 题目大意 给定 \(N\) 个土堆,第 \(i\) 个土堆有 \(Ai\) 个木块 你可以将第 \(i\) 个土堆的木块转移至第 \(i + 1\) 个土堆 问能否使土堆的木块数量构成上升序列 解题思路 贪心 最优的构造方法即令土堆的木块数一 阅读全文
posted @ 2021-02-19 23:17 GsjzTle 阅读(221) 评论(0) 推荐(1)
摘要:题目链接 点我跳转 题目大意 给定 \(n\) 个关卡 , 第 \(i\) 个关卡有个权值为 \(ai\) 的传送门 当你在第 \(i\) 个关卡时 , 如果 \(ai = 0\) 并且 \(i!=n\) ,则你闯关失败 否则你可以跳到 \(i + 1\) ~ \(i + ai\) 中的任意关卡 ( 阅读全文
posted @ 2020-12-06 08:35 GsjzTle 阅读(107) 评论(0) 推荐(0)
摘要:dsu on tree 题目链接 点我跳转 题目大意 一棵根为 \(1\) 的树,每条边上有一个字符($a-v$共$22$种) 一条简单路径被称为Dokhtar-kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串。 求每个子树中最长的Dokhtar-kosh路径的长度。 解题思路 \(ds 阅读全文
posted @ 2020-11-24 05:53 GsjzTle 阅读(394) 评论(0) 推荐(1)
摘要:dsu on tree 题目链接 点我跳转 题目大意 给定一棵 \(n\) 个节点的树,根节点为 \(1\)。每个节点上有一个颜色 \(c_i\) \(m\) 次询问。 每次询问给出 \(u\) \(k\):询问在以 \(u\) 为根的子树中,出现次数 \(≥k\) 的颜色有多少种。 解题思路 可以 阅读全文
posted @ 2020-11-24 03:01 GsjzTle 阅读(268) 评论(0) 推荐(1)
摘要:dsu on tree 题目链接 点我跳转 题目大意 给定一棵以 \(1\) 为根,\(n\) 个节点的树。设$d(u,x)$ 为 \(u\) 子树中到 \(u\) 距离为 \(x\) 的节点数。 对于每个点,求一个最小的 \(k\),使得 \(d(u,k)\) 最大。 解题思路 记录子树每个深度的 阅读全文
posted @ 2020-11-24 02:34 GsjzTle 阅读(210) 评论(0) 推荐(0)
摘要:dsu on tree 题目链接 点我跳转 题目大意 给定一片森林,每次询问一个节点的$K-Son$共有个多少不同的名字。一个节点的$K-Son$即为深度是该节点深度加$K$的节点。 解题思路 比较裸的 dsu on tree 统计不同名字开个 \(map<string , int>\) 即可 也可 阅读全文
posted @ 2020-11-24 02:07 GsjzTle 阅读(307) 评论(0) 推荐(0)
摘要:dsu on tree 题目链接 点我跳转 题目大意 给你一片森林,每次询问一个点与多少个点拥有共同的$K$级祖先 解题思路 询问一个点有多少个共同的$K$级祖先 可以等价于问它的$K$级祖先有多少个深度为 \(dep + K\) 的子节点 ($dep$为$K$级祖先的深度) 那么对于每个询问要先倍 阅读全文
posted @ 2020-11-24 01:57 GsjzTle 阅读(298) 评论(0) 推荐(0)
摘要:dsu on tree 题目链接 点我跳转 题目大意 给定一个以$1$为根的n个节点的树,每个点上有一个字母$(a-z)$ 每个点的深度定义为该节点到1号节点路径上的点数. 每次询问 $a,b$, 查询以 $a$ 为根的子树内深度为 $b$ 的节点上的字母重新排列之后是否能构成回文串. 解题思路 重 阅读全文
posted @ 2020-11-24 01:39 GsjzTle 阅读(442) 评论(2) 推荐(1)
摘要:dsu on tree 题目链接 点我跳转 题目大意 有一棵以 $1$ 号结点为根的有根树。 每个结点都有一个颜色,颜色是以编号表示的,$i$ 号结点的颜色编号为 $c_i$ 如果一种颜色在以 $x$ 为根的子树内出现次数最多,称其在以 $x$ 为根的子树中占主导地位。 显然,同一子树中可能有多种颜 阅读全文
posted @ 2020-11-24 01:17 GsjzTle 阅读(583) 评论(0) 推荐(4)
摘要:题目链接 点我跳转 题目大意 给定一个 \(N × M\) 的矩阵 对于矩阵的每一行,你可以在该行挑选不超过 \(⌊m/2⌋\) 个元素 要求挑选的所有元素的和为 \(K\) 的倍数,问可以挑选的最大元素和为多少 解题思路 先考虑如果题目给的是个一维数组而不是二维矩阵该怎么做 \(?\) 可以定义 阅读全文
posted @ 2020-10-21 05:59 GsjzTle 阅读(253) 评论(1) 推荐(1)
摘要:题目链接 点我跳转 题目大意 给定一个长度为 \(N\) 的数组 \(A\) 要求你找到一个 \(X\) 使得 \(Bi = Ai ⊕ X\) ,其中数组 \(B\) 的逆序对数最少 如果存在多个满足条件的 \(X\) , 则输出最小的那个 解题思路 贪心+分治 大致思路如下图 然后按照图示模拟一下 阅读全文
posted @ 2020-10-08 20:50 GsjzTle 阅读(158) 评论(0) 推荐(0)
摘要:题目链接 点我跳转 题目大意 给定一个字符串 \(S\) 对于 \(S\) 的每一个后缀 \(suf\) ,你可以删除任意对相邻的字符 问 \(S\) 的每个 \(suf\) 在删除了任意对相邻的字符后最小字典序是多少 解题思路 从前往后显然是不好做的,因为后一个 \(suf\) 和前一个 \(su 阅读全文
posted @ 2020-10-08 20:07 GsjzTle 阅读(200) 评论(0) 推荐(1)
摘要:A. String Similarity 题目链接 点我跳转 题目大意 给定一个长度为 2 * n - 1 的字符串要 S 要求构造一个字符串 W 使得 W 与 S[1,n] , S[2,n+1] , ... , S[n,2*n-1] 相似 相似的定义 :如果一个字符串 A 与 一个字符串 B 至少 阅读全文
posted @ 2020-08-26 15:47 GsjzTle 阅读(225) 评论(0) 推荐(1)
摘要:昨晚梦到自己把这道题的题解写了 , 既然梦到了 , 那就写吧 题目链接 https://codeforces.com/problemset/problem/1373/F 题目大意 有 N 个城市 , 这 N 个城市围成一个圈 ( N + 1 = 1 ) 其中第 i 个城市需要 ai 台设备 , 而第 阅读全文
posted @ 2020-07-08 00:59 GsjzTle 阅读(195) 评论(0) 推荐(0)
摘要:这是道很有意思的数论题 题目链接 https://codeforces.com/contest/1366/problem/D 题目大意 给你一个长度为 N 的数组 a , 对于数组中的每个数 ai 你需要找到 ai 的两个因子 d1 , d2 使得 gcd(d1 + d2 , ai) = 1 解题思 阅读全文
posted @ 2020-06-12 15:48 GsjzTle 阅读(417) 评论(0) 推荐(2)
摘要:题目链接 http://codeforces.com/contest/1362/problem/E 题目大意 给你一个长度为 n 的数组 K 和 一个整数 P, 让你将数组 K 分为A 、B两个集合 使得 ∑ P^KA - ∑ P^KB 的绝对值尽可能的小 解题思路 我们先考虑如果 p^k 的范围为 阅读全文
posted @ 2020-06-05 10:39 GsjzTle 阅读(722) 评论(4) 推荐(6)