摘要: 手画一下发现最优策略是统一向左/向右移,那我们就让鞋子向左移. 因为一个鞋子向左移不会使右面的答案变差,而最左面没有被匹配的鞋子也迟早要和一个鞋子去匹配. 写了一个 $O(n^2)$ 的暴力,过掉了 50pts. 然后我们发现将鞋子从 $j$ 移到 $i$ 的代价是 $j-i-$ $[i,j]$ 中 阅读全文
posted @ 2020-07-16 23:00 EM-LGH 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 算法一: 贪心,如果删除点 $(x,y)$ 整个图仍然联通则删掉 $(x,y)$,否则保留. 想到这里了,但是不会维护两点连通性,看了题解后发现直接令 $c[i][j]$ 表示连通块 $(i,j)$ 之间删掉了多少条边. 如果 $c[i][j]+1=\frac { num[i] \times (nu 阅读全文
posted @ 2020-07-16 21:47 EM-LGH 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 这道题里需要用到指针. 这里讲一下指针的一些基本操作: 首先,我们要分配一些内存,然后分配一个指针来指向这个内存: int pp[N],*p=pp,*f[N]; 这里指针的空间都会被分配到 pp 里. 假如说我们想给 $f[x]$ 分配一些内存,我们就令 $f[x]=p$,$p \leftarrow 阅读全文
posted @ 2020-07-16 11:35 EM-LGH 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 如果只要求判断有没有解的话很好做:以条树边被两条非树边覆盖即可. 输出方案的话可以考虑碰到一条非树边就暴力覆盖. 如果覆盖的过程中发现一条边已经被覆盖了就输出结果. 由于一条边只能被一种非树边覆盖,所以复杂度均摊下来是 $O(n)$ 的. 然后我们就得到两条路径 $(a,b)$ 与 $(c,d)$, 阅读全文
posted @ 2020-07-16 07:52 EM-LGH 阅读(153) 评论(0) 推荐(0) 编辑