GMOJ3284 [GDOI2013] 重构 题解】的更多相关文章

Description 给你一个有向图,要求重新建出一张点数相同有向图,使得点的联通关系和原图一致且边数最小. Solution 显然对于图上的一个强连通分量跑个缩点然后把每个强连通分量都变成一个环即可. 至此,原图转化为一个\(\text{DAG}\). 一个结论:建出来的图中出现的边一定在原图中出现过. 证明: 若新图中的一条边在原图中没有出现,则有两种情况: 1.这条边引入了新的联通关系,则不符题意. 2.否则,把这条边删掉会更优. 暴力: 所以,我们只需考虑原图中的边是否需要被留下就行了…
1. 审题leetcode 02 add-two-numbers​ 我们先看一下题目,如下  : 链表的从前往后为数字的低位到高位,模拟加法手算过程,从前往后遍历即可, 注意每个数字0-9,进位要处理好; 2. 解体思路 主要分4步来完成,增加一个头节点来处理后续的添加过程可能简单些; 处理l1 和 l2 共有元素的累加, 注意进位inc的累加; 处理多余的l1的内容; 处理多余的l2的内容; 处理最后剩余的进位; 3. 详细代码 3.1 直观的循环代码 1 /** 2 * Definition…
HEOI2016 题解 Q:为什么要在sdoi前做去年的heoi题 A:我省选药丸 http://cogs.pro/cogs/problem/index.php?key=heoi2016 D1T1 树 树剖直接做 或者操作逆序,并查集维护自己和祖先中第一个打标记的点,注意1号点本身有标记,mark[1]++ 代码在最后 D1T2排序 计数排序拿80... 二分答案,\(\ge\)设为1,\(<\)设为0,排序就可以用线段树模拟了. 鏼鏼鏼! 代码还没写 D1T3序列 md一开始看错题了 写出\(…
出现了一篇跑得炒鸡慢的题解! noteskey 无 fuck 说,好像就是整个数列分块然后合并区间...什么的吧 对于每块内部就是算一下前缀信息.后缀信息(就是以 第一个点/最后一个点 为一个边界,不超过 log 个不同的 or 值所要到达的最 左/右 点)和中值信息(就是某种区间长度内能 or 出来的最大值) 然后询问的时候从第一个块开始,向后先查询当前块与下一个块合并的答案,然后更新当前块 watch out nothing ,打代码的时候注意细节貌似是所有 coding 的 gift ?…
目录 #1. A + B Problem #2. Hello, World! #3. Copycat #4. Quine #7. Input Test #100. 矩阵乘法 #101. 最大流 #102. 最小费用流 #103. 子串查找 #104. 普通平衡树 #108. 多项式乘法 #119. 非负权单源最短路 #130. 树状数组 1 :单点修改,区间查询 #139. 树链剖分 #161. 乘法逆元 2 #556. 「Antileaf's Round」咱们去烧菜吧 #2030. 「SDOI…
初期:一.基本算法: (1)枚举. (poj1753,poj2965) poj1753 话说我用高斯消元过了这题... poj2965 巧了,用高斯消元01矩阵更快(l o l). (2)贪心(poj1328,poj2109,poj2586)(completed) poj1328 题目可以转化为将以每个岛屿为圆心,半径为d的原与x轴的交点构成的共n个区间,分成尽可能少的块,每个块中的区间有个交集(公共区间至少为一个点).那这就是经典的贪心了. poj2109 这似乎用二分+高精就过了好吧...…
题目传送门 题解 orz vfk的题解 3065: 带插入区间K小值 系列题解 一 二 三 四 惨 一开始用了一种空间常数很大的方法,每次重构的时候merge两颗线段树,然后无限RE(其实是MLE). 后来改成枚举子树元素插入,空间缩小为约 \(\frac 1 4\) ,然而TLE. 然后把替罪羊树的 \(\alpha\) 从 0.6改成0.75,就卡过了. 代码 #include <bits/stdc++.h> using namespace std; const int MAXN=1400…
题目传送门 题意 具体的自己去上面看吧...反正不是权限题. 简单来说,就是定义了一类新的数,每个数是0或者为 \((x_L, x_R)\) ,同时定义比较大小的方式为:非零数大于零,否则按字典序比较(先比较 \(x_L\) ,相等就比较 \(x_R\) ,递归定义) . 一开始序列A中元素都是0,然后支持两种操作: C l r k: 将A[k]赋值为(A[l],A[r]). Q l r: 询问A[l],A[l+1]...A[r]中的最大值的编号,若有多个最大值,输出最小的编号. 简要做法 官方…
[题解]Jury Compromise(链表+DP) 传送门 题目大意 给你\(n\le 200\)个元素,一个元素有两个特征值,\(c_i\)和\(d_i\),\(c,d \in [0,20]\),现在请你选出\(m\le 20\)个元素使得\(\sum c+\sum d\)最大,使得$|\sum c - \sum d|最小,输出\sum c \(和\)\sum d$和一组合法方案. 分析 是DP无误了. 我们可以先不考虑绝对值,平移一下值域,假如说我们知道\(\sum c +- \sum d…
ZROI 部分题目题解 335 首先发现一个性质: 对于最短的边而言,所有点的路径如果经过了这条边,那么路径的权值就是这条边的边权(废话) 那么我们把最短的边拎出来,可以发现,博物馆确定时,每个点按照路标所指方向走一定会经过最短的边或者一定被最短的边的某个端点经过 简单的说,令某一条最短的边的某个端点出发的某一条路径组成的集合为 \(S\),每个点出发的路径,要么包含某一条最短的边,要么被 \(S\) 中的某一条边包含 我们把每条边的权值减去 \(w\),其中 \(w\) 表示最短边的长度 那么…