上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 35 下一页
摘要: 题意: 数组已知。每次操作选择数组中等于某值的所有数,把它们全部移到数组首或数组尾。问至少操作几次可使数组升序。 思路: 找数组中最长的形如 \(b_1,b_1,\cdots,b_1,b_2,b_2,\cdots,b_2,\cdots\) 的序列,即值为 \(b_i\) 的数全都在值为 \(b_{i 阅读全文
posted @ 2022-01-07 23:25 Bellala 阅读(65) 评论(0) 推荐(0)
摘要: 题意: k个长为n的字符串(未知),只由字母a和b组成,且字典序均介于串A和串B之间。问集合 \(S=\{ p:p为至少一个串的前缀 \}\) 最大能是多少。 思路: 想象一棵trie,若无字典序限制则每层的节点数是上一层的2倍。考虑字典序,则只有两种边界情况非法。 每层最多能取k个 #includ 阅读全文
posted @ 2022-01-06 12:11 Bellala 阅读(36) 评论(0) 推荐(0)
摘要: 题意: 已知整数 \(p,k\),求多项式 \(f(x)\) 使得 \(f(x)=q(x)(x+k)+p\),且 \(f(x)\) 的系数 \(0\le a_i < k\) 。输出 \(a_i\)。 \(a_i\) 需为整数,但 \(q(x)\) 的系数不必为整数。 \(1\le p \le 10^ 阅读全文
posted @ 2022-01-06 00:11 Bellala 阅读(44) 评论(0) 推荐(0)
摘要: 题意: 给定一个数组,要求两种操作:求区间和;让区间的每个数异或上x 思路: 每一位开一棵线段树,节点维护(某一位上的)1的数量。 #include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 10 阅读全文
posted @ 2022-01-05 21:51 Bellala 阅读(47) 评论(0) 推荐(0)
摘要: 题意: 对给定数组(可能有负数)进行最多k次操作,每次让一个数 +x 或 -x。要使最终所有数的乘积最小,求操作方案。 思路: 如果负号的数量为偶,就尽量把绝对值最小的数的符号改变。(改变后负号数为奇) 如果负号数为奇,就让当前绝对值最小的数的绝对值增加 x #include <bits/stdc+ 阅读全文
posted @ 2022-01-05 20:29 Bellala 阅读(60) 评论(0) 推荐(0)
摘要: 题意: 有一棵逻辑运算树,叶子节点为输入节点(IN),取值0/1;其他节点有AND/OR/XOR/NOT四种类型,并根据儿子节点取不同的值。输出为根节点的值。 初始每个输入节点的值给定(因此所有节点的值确定)。问单独改变每个输入节点的值而保持其他输入节点不变,输出是多少 思路: 二叉树,每个节点存储 阅读全文
posted @ 2022-01-03 01:58 Bellala 阅读(33) 评论(0) 推荐(0)
摘要: 题意: 一棵点权为0/1的树,实现两种操作:反转 u-子树 中的所有数、查询 u-子树 中1的数量 思路: 一次dfs求出三个数组 dfn、L、R。dfn为原数组按dfs序排列,L为节点 i 的dfs先序,R为节点 i 的一种奇怪的dfs后序。每个节点的R与它的最右边的子节点的R相同。 相当于把原数 阅读全文
posted @ 2022-01-02 22:36 Bellala 阅读(43) 评论(0) 推荐(0)
摘要: 题意: 在树中找一条最长的链,链上所有点的点权的gcd大于1。 思路: 每个数的质因子数量是非常少的,可以认为是个位数。因为2×3×5一直乘到19就快1e7了。 \(p[u][j]\) 为编号为 \(u\) 的节点的第 \(j\) 个质因子 \(dp[u][i]\) 表示以 \(u\) 为一个端点, 阅读全文
posted @ 2022-01-01 21:15 Bellala 阅读(84) 评论(0) 推荐(0)
摘要: 题意: 定义独立边集:集合中任两边无公共端点;独立点集:集合中任两点没有边直接相连。在一个有3n个点和m条边的图中找一个大小为n的独立边集或独立点集。 n ⇐ 1e5,m ⇐ 5e5,无自环和重边 思路: 先找独立边集:遍历每条边,如果某条边的两端点都没用过就取。如果找到了至少n条边就直接输出。 如 阅读全文
posted @ 2022-01-01 19:16 Bellala 阅读(41) 评论(0) 推荐(0)
摘要: 题意: 把长为n的数组切成k段,每段的得分为段中的数之和模p。问总分最大是多少(总分不用模p) n ⇐ 2e4,k ⇐ 50,p ⇐ 100 思路: 先考虑朴素dp。\(f(i,k)\) 表示把第 \(1\sim i\) 个数切成 \(k\) 段的最大答案,则 \(f(i,k) = max _{j< 阅读全文
posted @ 2021-12-31 18:48 Bellala 阅读(47) 评论(0) 推荐(0)
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 35 下一页