Well, it was fun while it lasted./关必互关
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
```cpp struct node { template size_t operator()(const pair &p)const { return hash ()(p.first)^hash ()(p.second); } }; struct node1 { template bool operator()(co…
~~这跟括号序列有关系?~~ 考虑右括号随便放,反正都是 $0$,然后左括号尽量选大的,接着因为右括号随便放所以它一定是能够成合法括号序列的,最后显然要使它是合法序列那个右括号不能超过 $\frac{i}{2}$,原因显然,不必多说。于是直接用优先队列贪就行了。 代码: ```cpp #include using na…
只有一种括号类型的合法括号序列其实有一种~~冷门~~的方法来判断: 对于每一个字符,若它为 `(`,那么视它为 $1$,否则视为 $-1$,然后做前缀和数组,设它是 $a$,那么 $1 \sim n$ 是合法括号序列当且仅当: $$a_i = 0,\sum_{j = 1}^{i-1} [a_j using namesp…
这是展示效果: ::::success[写你想写的东西] 写你想写的东西 :::: ::::warning[写你想写的东西] 写你想写的东西 :::: ::::error[写你想写的东西] 写你想写的东西 :::: ::::info[写你想写的东西] 写你想写的东西 :::: 这是源码: ``` ::::success…
> 我真是太菜了…… ### First 首先看到是博弈,然后很~~容易~~想到这道题是个 Ad-hoc。仔细观察,~~显然~~答案具有单调性,设亚历克斯要拼命将美化值调到 $ \ge g$,浩要拼命将美化值弄到 $ 2$ 或者 $=2$ 或 $=1$ 或 $=0$ 而已,何必准确?那可能有人问了,那这样找到的 $q$…
> 喜提 $8$ 个 WA! 我们很显然有一个 $n (\lfloor \log n \rfloor+1)$ 次查询的做法,设 $f_k(x)$ 表示 $x$ 的第 $k$ 位的值,显然我们只需要求 $p_n$ 的所有第 $k(0 \le k \le \lfloor \log n \rfloor)$ 就能知道 $p_n…
> 这题就很数学了,很练思维。 首先当一个数是 $g$ 的倍数时,它不需要做任何操作,这是显然的。 然后给出一些结论: 1. 我们完全可以**先**删除数**再**分裂数,答案不会更劣。 2. 设我们要使所有数都是 $g$ 的倍数,对于一个数 $x$ 它如果 $ \ge 4g$,那它**一定**可以通过分裂来使得分成的…
首先看到 $n \le 20$,虽然 $a_i \le 10^9$,但是你会发现当 $1 \sim n$ 中只要有一台 B 机器,那么这一次轮回至少除以 $2$,所以复杂度最多是 $O(qn \log V)$,$V$ 是值域,但你会发现如果 $1 \sim n$ 中全都是 A 机器,那么这么做,复杂度就是 $O(qV)…
首先异或的优先级最高,所以相当于把所有一段连续的异或值算出来之后,只需考虑加号和减号,那么考虑俩算式: ``` ...+... ``` ``` ...-... ``` 设第一个算式前面的东西是 $A$,后面的东西是 $B$,第二个算式前面的东西是与上同,后面的东西也是与上同,那么两个算式就是: $$A+B$$ $$A-…
这是我第一次 AK 铜组!!! 首先根据长方形与正方形的启迪,可以想到在确定了 $i,k$ 后 $j = \lfloor \frac{i+k}{2} \rfloor$ 左右肯定是最优的,那么 $j$ 和 $k$ 肯定是一个越小越好,一个越大越好,所以预处理三个数组,一个表示一个字母 $x$ 在 $i$ 之前最晚出现的下…
~~和楼下一样,模拟赛有这道题然后就被吊打了。~~ 感谢 StayAlone 的题解给我的灵感。 很显然创建一个二维数组 $a$,$a_{i,j} = [p_j>a_{i,j}]$,然后在每次维护能够新完成的测试,去完成它,由于 $p_j$ 增大后,会修改 $j$ 列上连续一段的值,又因为 $p_j$ 单调不降,那每一…
中等难度 DP。 首先为了方便先将时间转换成秒。 设 $f_{i,j}$ 表示在 $j$ 时间到达关口 $i$ 最少遇到的巡逻车数量。 转移显然: $$f_{i,j} = \max\{f_{i-1,j-k}+q(i-1,j-k,j)\}$$ 其中 $q(a,b,c)$ 表示在 $b$ 时间从 $a$ 关口到 $a+1$…
考察简单贪心和唯一分解定理。 首先根据唯一分解定理,可得: $$x = \prod_{i = 1}^k p_i^{q_i},p_i \in prime,q_i \in N^+$$ 然后分类讨论,首先你会发现当 $x$ 有因子是完全平方数(也就是分解之后 $\exists i(1 \le i \le n)q_i>1$),…
简单树形 DP。 首先设 $f_i$ 表示 $i$ 的子树中天平砝码的总质量,那么显然存在转移式 $f_i = 2 \times \max(f_{l_i},f_{r_i})$,但这样很明显无法通过此题。那么根据题目中的二进制,又可以想到绝妙的办法,你会发现每一个 $f_i$ 都可以表示为 $2^k \times x$,…
很显然题目的数据范围 $n \le 5 \times 10^3$,复杂度显然是 $O(n^2)$ 或者 $O(n^2 \log n)$,很显然这题是数学题,时限又如此之大,很明显能猜出复杂度为 $O(n^2 \log n)$ 级别,而说到 $\log$ 在数学中很容易想到调和级数,那么这题就很显然了,题目要求的东西是:…
妙妙推导题。 首先思考假设我们建了一个最小生成树,那么对于任意一条从 $i$ 到首都的路径中的边 $e$,如果断开那么 $i$ 绝对到不了首都,所以 $i$ 其实是给任意一条从 $i$ 到首都的路径中的边都增加了 $p_i$ 的“贡献”,所以,题目所求就是($P(e)$ 指的是 $e$ 的损失,$C(e)$ 指的是 $…
~~这真的是紫?撑死蓝吧,而且数据范围那么小,暴力都能过……~~ ### Solution 1 由于数据范围过于神秘…… > $3 \le N \le 4000$ ????~~出题人你善也不能善到这个程度吧……~~ 所以……暴力枚举删哪个点,然后给删除后的所有树跑一遍树哈希求出哈希值判断是否全部一样即可。 时间复杂度…
~~这真的是紫?~~ 通过对称想到同构,同构又能想到树哈希,对称肯定是需要递归的,那么对于当前递归到的一个点 $x$,根据 $x$ 的儿子数量分类讨论,如果 $x$ 的儿子数量是偶数,那么搞一个 `map` 记录分别以 $x$ 的所有儿子为根的子树的哈希值,然后用迭代器遍历一遍 `map`,看一下对于每一个哈希值的次数…
在文章《题解:AT_abc405_c [ABC405C] Sum of Product》发表评论:
哦对,没事,差不多……
题目是要求 $\sum_{i = 1}^n\sum_{j = i+1}^na_ia_j$,实际上就是 $\sum_{i = 1}^na_i(\sum_{j = i+1}^na_j)$,然后发现 $\sum_{j = i+1}^na_j$ 可以用前缀和维护,于是就没了。 代码: ```cpp #include using…
首先一看就知道要先跑[多源最短路](https://www.cnblogs.com/linjinkun/p/18751269),然后标箭头就相当于找最短路,其实可以用 $d_{r,c} = d_{i,j}-1$ 来判断对于 $(i,j)$ 走 $(r,c)$ 这个位置是否是最短路,然后就可以确定箭头方向了。 代码: `…
在讨论《因大量脚本导致的提交评测现状说明》回复:
这些人胆子真大,被封过了还不怕。
在讨论《建议降乘》回复:
@[Moya_Rao](luogu://user/814130)哦
不就是个非常简单预处理吗?代码也十分简单,而且这题跟队列有什么毛线关系。 代码也很短: ```cpp #include using namespace std; const int N = 1e6+5; int sum[N]; int a[N]; int q[N]; int minn[N]; int minnz[N];…
简单题,直接 DFS 扫一遍,看有没有经过重复点并且这时其它点都已经走过即可。 代码: ```cpp #include using namespace std; const int N = 2e5+5; vector e[N]; int vis[N]; int n,m; void dfs(int x,int fa) {…
在文章《P4390 [BalkanOI2007] Mokia 摩基亚 题解》发表评论:
代码里的排序没必要哈,会让速度变得很慢
在文章《P4390 [BalkanOI2007] Mokia 摩基亚 题解》发表评论:
排序去掉之后直接https://www.luogu.com.cn/record/213975004拿下
在讨论《问》回复:
@[littlep001](luogu://user/922855)有没有具体的解释,我没太看懂
在讨论《问》回复:
是跑到