这个题是传说中的 Hack 狂魔 qmqmqm 出的构造题.当然要神. 这个题的本质实际上就是构造一个图,然后使得任意两点间都有长度为 $k$ 的路径相连,然后对于任意的 $i < k$,都存在两个点使得这两个点没有长度为 $i$ 的路径相连. 我的构造方法就是: 首先给每个点连一个自环. 构造一个大小为 $n-k+1$ 的团. 然后剩下的点造成一条链并与 $n-k+1$ 号点相连. 这样的解是一组可行解. 时间复杂度 $O(n^2)$,空间复杂度 $O(1)$. #include <cstd…
[弱省胡策]Round #5 Count 太神仙了. \(DP\)做法 设\(f_{n,m,d,k}\)表示\(n*m\)的矩阵,填入第\(k\)个颜色,并且第\(k\)个颜色最少的一列上有\(d\)个块染了\(k\)颜色. \[ \displaystyle f_{n,m,d,k}=\sum_{i=1}^nC_n^i\cdot (C_m^d)^i\cdot f_{i,m-d,0,k-1}\cdot f_{n-i,m,d+1,k} \] 边界条件特别烦,当\(n=1\)或者\(n==1\&\&…
弱省胡策 Magic 求\(n\)个点\(n\)的条边的简单联通图的个数. 毒瘤,还要写高精. 我们枚举环的大小\(k\),\(\displaystyle ans=\sum_{k=3}^nC_n^k \frac{(k-1)!}{2}n^{n-k-1}k\) 其中\(\frac{(k-1)!}{2}\)表示环的连边方案,\(n^{n-k-1}k\)就是一个大小为\(k\),\(n-k+1\)个大小为\(1\)的森林的生成树个数. 代码: 没有…
luoguP3769 [CH弱省胡策R2]TATT PS:做这题前先切掉 P4148简单题,对于本人这样的juruo更助于理解,当然dalao就当练练手吧 题目大意: 现在有n个四维空间中的点,请求出一条最长的路径,满足任意一维坐标都是单调不降的 偏模板的K-D Tree 题目没规定起点,则从任意一点出发,按维度优先级以及每个维度坐标为关键字排序, 每点作为终点查询一次,再插入,其他就是模板化的代码了 这里用到了一个小技巧,就是初始化将子树0的值赋值,避免过多的特判,使代码更加简洁 for(LL…
Codeforces Round 665 赛后解题报告 A. Distance and Axis 我们设 \(B\) 点 坐标为 \(x(x\leq n)\).由题意我们知道 \[\mid(n-x)-x\mid=k \] \[\mid n-2\cdot x \mid=k \] 因此 \(n,k\) 同奇偶.我们分类来讨论,如果 \(n<k\),那么最优方案一定是让 \(k'=n,x=n\).这一定是最小的,因为再要满足条件就 \(k'>n\) 了,肯定不优.若 \(n\geq k\).则我们只…
Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们可以画几张图,发现每一次我们染色的最佳方法就是每次往里面多填一圈,并把上一圈给填满. 比如上图就很好地说明了这个过程,大家可以用画一下 \(n=4,n=5,n=6,n=7\),就能验证这个命题了,所以一个 \(n\times n\) 的矩阵有 \(\lfloor\frac{n}{2}\rfloor+…
Codeforces Educational Round 92 赛后解题报告 惨 huayucaiji 惨 A. LCM Problem 赛前:A题嘛,总归简单的咯 赛后:A题这种**题居然想了20min 我说这句话,肯定是有原因的,我们看到 \(\operatorname{lcm}\) 会想到之前一些题:题目,我的题解 自然就往 \(a\times b=\operatorname{gcd}(a,b)\times \operatorname{lcm}(a,b)\) 的方向思考,但是,这太麻烦了,…
DP+容斥原理or补集转化?/KD-Tree 唔……突然发现最早打的两场(打的最烂的两场)没有写记录……(太烂所以不忍记录了吗... 还是把搞出来了的两道题记录一下吧= =勉强算弥补一下缺憾…… Round0 A 要求问(1,2)->(n-1,m)  &  (2,1)->(n,m-1)的不相交路径条数,蒟蒻当时只想到了$N^3$的DP……即枚举当前的总步数,以及两个人分别横向走了几步. 其实正解是(也只能是?)$O(N^2)$的! ans=calc{(1,2)->(n-1,m)}…
又熬夜刷了cf,今天比正常多一题.比赛还没完但我知道F过不了了,一个半小时贡献给F还是没过--应该也没人Hack.写写解题报告吧= =. 解题报告例如以下: A题:选择排序直接搞,由于不要求最优交换次数,代码: #include <iostream> #include <algorithm> #include <cstdio> #include <memory.h> #include <vector> #include <stack>…
这个题是我出的 sb 题. 首先,我们可以得到: $$A_i = \sum_{j=i}^{n}{j\choose i}(-1)^{i+j}B_j$$ 我们先假设是对的,然后我们把这个关系带进来,有: $$B_i = \sum_{j=i}^{n}{j\choose i}A_j = \sum_{j=1}^{n}{j\choose i}\sum_{k=j}^{n}{k\choose j}(-1)^{j+k}B_k = \sum_{j=i}^{n}B_j\sum_{k=i}^{j}{j\choose k…