摘要:
「codeforces - 340E」Iahub and Permutations link。 把 \(1,\dots,n\) 中剩下没被固定的数的数量记作 \(s\),再把这其中不担心有会填到自己身上去的情况的数字的数量记作 \(h\),则总方案为 \(s!\),考虑容斥把重叠方案去除,设容斥系数 阅读全文
摘要:
link。 首先将问题弱化为 1-d,我们待定容斥系数 \(f_i\),可以写出答案的式子:\(\sum\limits_{i=a}^nf_i\binom{n}{i}2^{n-i}\)。解释就是,我们想让 \(\binom{n}{i}2^{n-i}\) 达到“至少”的效果,但是明显会算重,所以通过这个 阅读全文
摘要:
发现终于最讨厌的还是和自己的相同的人的样子。 A 傻逼题,不算复杂度差不多得了,显然交换 $S$ / $T$ 的选出区间中的任意位置不影响答案,于是前缀和即可。 B 清新题,只不过我的确不会...部分分设置不太合理。 你考虑用 $O(h ^ 2 w ^ 2)$ 的时间钦定两个点 $(x_1, y_1 阅读全文
摘要:
题意大概是这样,「每次操作选出区间中的一个 LIS(strictly),满足其开端是极靠近左端点且大于 \(A\) 的位置,答案即这个 LIS 的末尾,做一个轮换后弹出序列末端」。 首先做几个观察。 Observation 1:每次被弹出的都是区间最大值。 证明:显然,你考虑有一个最大的值在钦定的 阅读全文
摘要:
不太了解这个东西的具体定义是什么,总之应该是一个用数据结构维护 DP 状态的某几个维度的 trick 吧。 事实上你可以把这篇 post 理解为三个题的解集。 先直接来看 noi2020 - Destiny 这个题。 给定一棵树 \(T = (V, E)\) 和点对集合 \(\mathcal Q \ 阅读全文
摘要:
link。 值域分治优化决策单调性 DP 的 trick。朴素做法 trivial,不赘述。 考虑求取一个区间 \([l,r]\) 的 DP 值。先搞定在 \(m=\lfloor\frac{l+r}{2}\rfloor\) 的 DP 最优决策点,由于决策的单调性,\([l,m)\) 和 \((m,r 阅读全文
摘要:
对 @command_block 没有 implementation 做法的细化。理论来说可以通过,但因为我实现得较劣无法通过。:( 把金币中的空隙看作石子,就是一个阶梯 Nim 的模型(有总共 \(n-m\) 个石子,\(m+1\) 个石堆,其中最左边有一个独立的石堆)。于是问题转化为满足偶数编号 阅读全文
摘要:
E 倒流一下,然后把负权边置零后跑 MST 即可。 #include<cstdio> #include<vector> #include<algorithm> using namespace std; const int N=2e5+5,M=2e5+5; struct edge { int u,v; 阅读全文
摘要:
link。 钦定 \(i>j\),研究得 \((x^i-1,x^j-1)\rightleftharpoons(x^i-x^j,x^j-1)\rightleftharpoons(x^j(x^{i-j}-1),x^j-1)\),注意到 \((x^j,x^j-1)=1\) 且当 \((a,c)=1\) 时 阅读全文