随笔分类 -  解题笔记

摘要:为啥洛谷现有的题解全是 \(O(n^2\log n)\) 的做法?给个好写的 \(O(n^2)\) 做法。 感觉这题是这套题中除了 D1T1 以外最简单的题( 显然最远的距离一定由两个叶子贡献,我们拎出一个非叶节点为根,分析一些性质。 考虑两个叶子 \(u,v\) 何时距离 \(\le 2\),这要 阅读全文
posted @ 2024-01-24 13:44 Nesraychan 阅读(194) 评论(0) 推荐(1)
摘要:好久没写一整场 CF 或者 AT 的题解了,所以写一篇。 C 有点意思的题。 考虑先放横再放竖,若确定所有横的位置,那么每列独立。所以记 \(f_i\) 表示第 \(i\) 列最多放多少个,考虑放一个横对 \(f_i\) 的影响。 若 \(n\) 为奇数,那么第一行放满显然最优。若某时 \(A>1\ 阅读全文
posted @ 2023-11-29 14:52 Nesraychan 阅读(134) 评论(0) 推荐(1)
摘要:「AGC039E」Pairing Points 在 $n>1$ 时,有一个很好的性质:一条边至少要与一条边相交,不然就会有不止一个连通块。 考虑圆上 $1$ 号点的连边将圆分割成了两半,有两种情况: 所有边均为二部间的连边,这是简单处理的。 一条边跨越二部,剩下的边均是内部的边。(如果不止一条,则会 阅读全文
posted @ 2023-05-11 22:11 Nesraychan 阅读(138) 评论(0) 推荐(0)
摘要:「AGC060C」Large Heap 这个题赛时只做了 15min,而 B 做了快 1.5h。。。 发现到 $U,V$ 的路径是一条向左延伸,长度为 $A$ 的链,和一条向右延伸,长度为 $B$ 的链。记 $f(i,j)$ 表示,左侧的链长为 $i$,右侧长为 $j$,路径上的点均比两端点小的概率 阅读全文
posted @ 2023-04-24 21:40 Nesraychan 阅读(203) 评论(0) 推荐(0)
摘要:加训大数据结构。 「LG8528」[Ynoi2003] 铃原露露 lxl 怎么一题多投,很坏啊! 考虑哪些 $(a_x,a_y)$ 有约束力,一是 $a_z>a_x$ 且 $a_z>a_y$, 或者 $a_z<a_x$ 且 $a_z<a_y$。这也就相当于将 $l\in[L_l,R_l],r\in[ 阅读全文
posted @ 2023-04-19 21:25 Nesraychan 阅读(110) 评论(0) 推荐(1)
摘要:加训大数据结构。 「LG6109」[Ynoi2009] rprmq1 在一般的矩形修改问题中,有时间,横坐标,纵坐标三维,而这题只有横纵坐标两维,所以这本质上是序列上的问题。 如果对于每次查询,都有 $l_1=1$,那么直接扫描线,用线段树维护第二维的历史最大值就好了。 对于一般情况,需要在第一维进 阅读全文
posted @ 2023-04-17 20:17 Nesraychan 阅读(218) 评论(2) 推荐(2)
摘要:赛时战况,血压飙升,成功跳崖! A 随便算一下就好了。 #include<bits/stdc++.h> #define IL inline #define reg register IL int read() { reg int x=0; reg char ch=getchar(); while(c 阅读全文
posted @ 2023-03-13 13:01 Nesraychan 阅读(158) 评论(0) 推荐(0)
摘要:$\texttt{Description}$ 给你一个有 $n$ 个点的树和一个长度为 $k$ 的序列 $s_i$,你要执行以下操作 $k$ 次: 选出目前存在的一条边。 删除这条边。 选出分裂出的两个联通块的其中一块。 删除这个联通块,并写下剩余的联通块的大小。 问有多少种不同的操作方案使得写下的 阅读全文
posted @ 2023-03-02 13:56 Nesraychan 阅读(90) 评论(0) 推荐(0)
摘要:A 模拟即可。 #include<bits/stdc++.h> #define IL inline #define reg register #define N 50050 IL int read() { reg int x=0; reg char ch=getchar(); while(ch<'0 阅读全文
posted @ 2023-03-01 19:55 Nesraychan 阅读(71) 评论(0) 推荐(0)
摘要:A 略,具体见 C。 B 这题卡了我一会,写起来又花了挺长一段时间的,水平还是不够! 贪心一下,优先取贡献为 $2$ 的,其次取贡献为 $1$ 的,看上去就很对。 Code: #include<bits/stdc++.h> #define IL inline #define reg register 阅读全文
posted @ 2023-02-06 16:04 Nesraychan 阅读(151) 评论(0) 推荐(0)
摘要:在开始正文前,先分享一下笔者在 WC2023 的悲惨经历。 前 2.5h 在三题间反复横跳,啥都不会,心态爆炸,也根本没写什么暴力分;后 2.5h 猛然发现这题会做,没有想清楚代码细节就开始狂暴 rush,结果没冲出来。 于是悲惨打铜。 还不如先睡他 3.5h,然后起床花 1.5h 写三个暴力直接 阅读全文
posted @ 2023-01-19 09:48 Nesraychan 阅读(362) 评论(0) 推荐(1)
摘要:D1T1 加法方程 因为字母和数字是一一对应的,所以只要不同字母数多于 $10$,方程一定无解,则一遍暴力地枚举答案的花销是 $O(10!)$。 我们发现,对于不同的答案串,它们的本质可能是相同的。 我们对相加的两个串枚举,得到的本质不同的串最多只有 $10!$ 个,这很少。 那我们只要预处理出所有 阅读全文
posted @ 2021-08-30 16:47 Nesraychan 阅读(501) 评论(2) 推荐(1)
摘要:Description 维护一个字符串集合,支持以下操作: 加字符串 删字符串 查询集合中的所有字符串在模式串中出现次数之和 操作数 $n\leq 3\times 10^5$,字符串长度和 $\sum |s|\leq 3\times 10^5$。 本题强制在线。 Solution 先考虑最暴力怎么做 阅读全文
posted @ 2021-08-27 16:48 Nesraychan 阅读(144) 评论(0) 推荐(1)
摘要:题意简述 给定一个 $n$ 个点 $m$ 条边的带权有向图,你可以进行至多 $k$ 次操作,使得下一次通过路径的权值变为其相反数,之后再变回来。 问从 $1$ 号点到 $n$ 号点的最短路。 $n≤100,m≤2500,k≤10^6$。 Solution 先考虑 $70$ 分怎么做: $k=0$ 时 阅读全文
posted @ 2021-07-29 20:52 Nesraychan 阅读(214) 评论(0) 推荐(0)
摘要:题意简述 给定一个 $n$ 个点,$m$ 条边的无向联通图,边有边权,要求支持以下 $q$ 次操作: 修改某条边的边权 给定 $x,v$,求从 $x$ 点出发,只能走边权 $≥v$ 的边,问最多能到达几个点 $n≤5\times 10^4, m,q≤10^5$ Solution 如果没有修改,这个问 阅读全文
posted @ 2021-07-21 21:21 Nesraychan 阅读(144) 评论(0) 推荐(2)