do_while_true

一言(ヒトコト)

随笔分类 -  题解

上一页 1 ··· 3 4 5 6 7 8 9 下一页
各种题目的题解。
摘要:比赛链接 开了把vp,C降智导致浪费大量时间/dk/dk A 贪心,几种凑 $10$ 的方案的优先度是:$(3,3,4),(3,3,2,2),(4,4,2),(2,2,2,2,2),(4,2,2,2)$ ll a, b, c, ans; void solve() { read(a); read(b) 阅读全文
posted @ 2021-09-22 18:55 do_while_true 阅读(120) 评论(0) 推荐(1) 编辑
摘要:你有一个数字 \(x\) 和若干个操作,每个操作是 \(+a_i\) 或者乘 \(\times a_i\) 中的一种。你可以重新排列这些操作的顺序,然后对数字 \(x\) 执行这些操作。 比如说三个操作是 \(+a_1,+a_2,\times a_3\)。如果按顺序执行这三个操作,那么得到的结果是 阅读全文
posted @ 2021-08-22 10:02 do_while_true 阅读(307) 评论(0) 推荐(0) 编辑
摘要:莫比乌斯反演的另外一种形式: 如果有: \[ f(n)=\sum_{n|d}g(d) \] 则有: \[ g(n)=\sum_{n|d}\mu(\frac{d}{n})f(d) \] 这里的 \(d\) 通常是小于等于一个界限,也就是题目中所给定的 "\(n\)"。 特别地,当 \(n=1\) 时, 阅读全文
posted @ 2021-08-17 16:08 do_while_true 阅读(84) 评论(0) 推荐(0) 编辑
摘要:直接无脑随机调整! 大力钦点 \(121212\cdots\) 分配。 有限制的之间记录一下,强制改成相反的,此后其中一个改变另一个也要改变。 这个时候可能不满足相邻三个不能都相同了,把冲突的拉到一个队列里面,每次取出队头随机钦点一个修改,再把修改后新产生的冲突拉到队列里面去。 复杂度玄学,实测跑的 阅读全文
posted @ 2021-08-16 09:48 do_while_true 阅读(43) 评论(0) 推荐(0) 编辑
摘要:现在明确我们的目的:能赢就选择赢的方案,否则尝试平局;并不是求和对方差值更大的方案。 考虑一个赢/平局的方案,考虑每一条边,没有被任何一个经过,那么调整到任何值都是无所谓的;如果仅被 \(s_1\) 经过,调整到 \(l\) 是更优的;如果仅被 \(s_2\) 经过,调整到 \(r\) 是更优的;如 阅读全文
posted @ 2021-08-16 09:48 do_while_true 阅读(33) 评论(0) 推荐(0) 编辑
摘要:问题可以转化成给每个边定向,\(a_i\) 变成了 \(i\) 点的入度。 因为给每个点定向必然有个点的入度为 \(0\),从这个点开始删即为一种合法删点方案;对于每个删点方案,每删一个点就把相邻的边都定向到自己,这样本质不同的删点方案一定当且仅当存在一个点的入度不同。这样构造了一个双射,完成了问题 阅读全文
posted @ 2021-08-16 09:47 do_while_true 阅读(37) 评论(0) 推荐(0) 编辑
摘要:对于每一个询问,在点分树上一定存在一个最浅的点,满足这个点是 \(x\) 在点分树中的祖先,且在点分树上到 \(x\) 经过的点编号最小/大值组成的区间 \([\min,\max]\) 被 \([l,r]\) 包含,那么所有编号在 \([l,r]\) 内的与 \(x\) 连通的点,一定都在点分树中这 阅读全文
posted @ 2021-08-16 09:46 do_while_true 阅读(37) 评论(0) 推荐(0) 编辑
摘要:orz qyc 两个串相似实际上是两个字符串 'N' 和 'B' 的数量一致。 设 \(s_i\) 有 \(x_i\) 个 'N',\(y_i\) 个 'B',\(t\) 有 \(x\) 个 'N',\(y\) 个 'B'。 分类讨论一下 \(dist(s,t)\) 在 \(x,x_i\) 以及 \ 阅读全文
posted @ 2021-07-23 10:57 do_while_true 阅读(47) 评论(0) 推荐(0) 编辑
摘要:orz qyc 看成一个人 \(i\) 向 \(p_i\) 连边,每个点的入度出度都为 \(1\) 。那么就是若干个环,每次可以选择一条边将这条边两端的端点染色,求 \(k\) 次染色后,最大和最小有颜色点的个数数。 最大值发现可以贪心,偶数长度的环可以用长度除以 \(2\) 次染色全部染色,每次染 阅读全文
posted @ 2021-07-23 10:56 do_while_true 阅读(78) 评论(0) 推荐(0) 编辑
摘要:orz qyc 设 \(m=\frac{|s|}{2}\). 看起来很像背包,由基础组合数学知识可知,把每个字符出现次数看做体积为 \(1\) 的物品,做 01 背包后 \(m\) 能被凑出的方案数,乘上 \((m!)^2\) 再除去每个数出现次数的阶乘即为没有限制的答案。 有限制了怎么做?可以看成 阅读全文
posted @ 2021-07-23 10:55 do_while_true 阅读(45) 评论(0) 推荐(0) 编辑
摘要:orz 峰 由于不是正数就是 \(0\),可以把正数看成 \(1\),变成了 \(01\) 矩阵。 邻接矩阵的 \(k\) 次幂中,\({A^k}_{i,j}\) 代表 \(i\) 到 \(j\) 是否有长度为 \(k\) 的路径。 这个题变成了是否存在一个 \(k\),使得任意两点之间都有长度为 阅读全文
posted @ 2021-07-23 10:53 do_while_true 阅读(51) 评论(0) 推荐(0) 编辑
摘要:orz qyc 看很多写法都是 \(\mathcal{O}(n^4)\) 的,其实稍微预处理下就能做到 \(\mathcal{O}(n^3)\) 的了。 并不那么显然地看出是个区间 dp,后面就很好做了。 发现平方聚在一起是更优的,则区间 dp 应该是枚举一列让它尽可能的多选。 基于这个贪心的思路, 阅读全文
posted @ 2021-07-23 10:53 do_while_true 阅读(28) 评论(0) 推荐(0) 编辑
摘要:看到字符串就害怕傻眼到降智,赢得番薯田大丰收。 注意到问题等价于是否存在一种 \(t\) 的字符先后一一映射到 \(s\) 的方案,使得在 \(s\) 中的下标奇偶性不同,并且要满足最后 \(s\) 没有被映射到的极长后缀长度为偶数,这样才能保证能把多余的删完。 考虑类似于子序列自动机的形式处理出 阅读全文
posted @ 2021-07-23 10:51 do_while_true 阅读(158) 评论(0) 推荐(0) 编辑
摘要:线段树/树状数组好题 阅读全文
posted @ 2021-07-23 10:30 do_while_true 阅读(65) 评论(0) 推荐(0) 编辑
摘要:获得可能更优的阅读体验 快跑。 本篇文章重点在于整理如何优美地写完这道题。 先手写张攻略理解下规则。 发现 \(>15\) 张的「和牌」方式不需考虑,没有 「\([3\times 4+2]\)」 的更优。若是宝牌: \(\binom{4}{4}\times 2<\binom{4}{3}\times2 阅读全文
posted @ 2021-07-10 07:54 do_while_true 阅读(203) 评论(0) 推荐(0) 编辑
摘要:不太一样的阅读体验 ABC208F 给定 \(n,m,k\),计算 \(f(n,m)\) 的值,模 \(10^9+7\). \[ \begin{aligned} \displaystyle f(n, m)& = \begin{cases} 0 & (n = 0) \newline \\ n^K & 阅读全文
posted @ 2021-07-05 13:56 do_while_true 阅读(177) 评论(0) 推荐(0) 编辑
摘要:考虑一个数对答案的贡献,我们想要的是有替当前这个数 pop 的替死鬼,那么可以设计一个 dp:设 \(f_{i,j}\) 为当前考虑 \(a_x\) 在原序列选到 \(i\),共有 \(j\) 个替死鬼。注意到由于可以是非连续的子序列,所以每个 \(f_{i,j}\) 转移可以从 \(<i\) 的所 阅读全文
posted @ 2021-07-05 09:29 do_while_true 阅读(159) 评论(0) 推荐(0) 编辑
摘要:题意:求最长区间使得加入 \(k\) 个数后 sort 后最后为一个公差为 \(d\) 的等差数列。多解输出 \(l\) 最小的答案。 \(n,k\leq 2\times 10^5,0\leq d\leq 10^9\) \(d=0\) 的情况特判一下,找最长的值都相同的段即可 \(d\neq 0\) 阅读全文
posted @ 2021-07-04 10:51 do_while_true 阅读(51) 评论(0) 推荐(0) 编辑
摘要:注意到如果我们用类似 cdq 分治的思想,对于每个节点统计“左子树的叶子和右子树的叶子进行匹配的逆序对数”从而求和得到总体逆序对数,那么对于任意两个不同节点,他们各自的两个子树交不交换位置对答案的影响是互相独立的。 所以只需要求对于每个节点是否交换优即可。 考虑在每个叶节点开权值线段树然后向上合并, 阅读全文
posted @ 2021-06-30 18:56 do_while_true 阅读(29) 评论(0) 推荐(0) 编辑
摘要:A:判断一下给出的俩是一样的还是不一样的,分成两类输出。 B:对于每个 \(A_i\),答案加上 \(\max(A_i-10,0)\) C:对于每个点 \(\mathcal{O}(n)\) dfs 一遍能到达的点有多少个,加起来即可。 D:dp,设 \(f_{i,j}\) 为考虑前 \(i\) 个, 阅读全文
posted @ 2021-06-06 21:39 do_while_true 阅读(153) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 下一页