上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 题目链接: "戳我" 看到输出格式。。。。如果有小数的话为什么需要保留到整数呢。。。所以—— 并没有小数!我们可以认为每个点的海拔要么是1要么是0.然后求最小割就可以了! 至于为什么要么是1要么是0?蒟蒻yy的证明:既然是求出来最小割,如果差是1的话就可以割掉这条边了,这样对最小值(比如说x)加权为 阅读全文
posted @ 2019-01-21 14:40 风浔凌 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 按理说以dinic$O(M N^2)$的时间复杂度应该是过不去的(呃我也知道这个上界很松)。~~但是最小割确实可以水过去??~~ ~~但是本着写正解的精神~~,我还是学了学平面图和对偶图,跑最短路的话时间复杂度应该是正确的。(大家可以去上网搜一下,~~或者看蒟蒻的 "OI网络流 阅读全文
posted @ 2019-01-21 11:53 风浔凌 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 传递闭包+DAG最小覆盖路径。 读完题目之后发现求的路径是可以相交的,也就是说一个点可以重复经过。 但是我们的网络流求最小覆盖路径是不能重复经过一个点的怎么办,那么那些不相交路径上的点怎么抵达呢? 这里我们可以做个转化,先用floyd求个传递闭包,预处理出来每个点可以到达的点, 阅读全文
posted @ 2019-01-21 09:59 风浔凌 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 建图方式比较巧妙的一个题。 首先还是拆点思想,就是对于一个点,我们拆成早上和晚上两种状态。 之后我们考虑怎么建图。 首先我们定义早上状态接收干净餐巾,传出脏餐巾。晚上接收脏餐巾,传出干净餐巾。 1、每天早上可以买任意数量的新餐巾(从源点连到i,容量为INF) 2、每天早上传出需 阅读全文
posted @ 2019-01-21 00:23 风浔凌 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 最小费用最大流。 代码如下: include include include include include define MAXN 210 define S 0 define T 2 n+1 using namespace std; int n,t=1,c,f; int he 阅读全文
posted @ 2019-01-20 23:17 风浔凌 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 最小费用最大流。 代码如下: include include include include include include define S 0 define T n+m+1 define MAXN 210 using namespace std; int n,m,t=1,c 阅读全文
posted @ 2019-01-20 22:52 风浔凌 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 感觉很套路了,就不多说了,直接上代码了。。。。 代码如下 阅读全文
posted @ 2019-01-20 20:52 风浔凌 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 太水了啦 直接最大流跑输出即可。 代码如下: include include include include include include define MAXN 100010 using namespace std; struct Edge{int nxt,to;long 阅读全文
posted @ 2019-01-20 16:20 风浔凌 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 差不多就是DAG最小路径覆盖吧——拆点连边。 不会的可以看看蒟蒻的这个关于网络流的小总结 "qwq" 最小路径覆盖(不相交)=节点个数 最大匹配 但是要注意的是这个题的节点个数不能算高山深涧的点,因为它本来就非法,自己就构不成一个路径。 代码如下: include includ 阅读全文
posted @ 2019-01-20 16:13 风浔凌 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 本来是cogs上面的题来着,但是现在上不去了。 题目链接: "戳我" 听说贪心可做,打表找规律可做(~~都是些什么神奇做法啊,这难道不是让我们用网络流做的吗喂~~) 最大流一类转化的问题。建图是关键。 题目的大概意思:用最少的柱子放1 n个球,要求同一根柱子上两个相邻的球数值之和为完全平方数。n要尽 阅读全文
posted @ 2019-01-20 13:35 风浔凌 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 树链剖分。 注意一点就是维护最大值的时候最好写成下面代码里那个样子,要不然会因为可能左右区间没有的问题有奇奇怪怪的锅。 代码如下: include include include include define MAXN 100010 using namespace std; i 阅读全文
posted @ 2019-01-19 20:32 风浔凌 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 树链剖分维护。 1表示安装的状态,0表示没有安装的状态。 如果install就是把当前点到根的所有点都变成1,然后计算前后的$\delta$ 如果uninstall呢,就是把自己的子树变成0,答案也是前后的$\delta$ 具体可以参照代码(不过我的代码常数好大啊,跑得好慢。。 阅读全文
posted @ 2019-01-19 17:36 风浔凌 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 感觉虽然在所谓的网络流24题编制里,但是并没有看出来怎么用网络流做?(~~听说网络流24题全名不叫网络流24题???~~) 看到n的范围挺小的,我们考虑状压。 转移的过程可以放到图论里面,因为要求费用最小,所以我们想到了最短路!(笑 所以就是dij+状压转移嘛qwqwq(~~我 阅读全文
posted @ 2019-01-19 12:08 风浔凌 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 算是最大流的模板了吧qwq 建立一个源点和汇点,分别向二分图的两边连边(容量为1) 最后输出方案的时候判断一下边不为0即可。 代码如下 include include include include include define MAXN 100010 using namesp 阅读全文
posted @ 2019-01-19 12:01 风浔凌 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 同样是LCT维护一个类似最大生成树的东西。 题目链接: "戳我" emmm其实我在uoj上过不去,加的数据我TLE了。。。。。。 但是bzoj上还是可以的。。。。。 关于push_up的小trick:初始化的时候给0节点也初始化成最大值,然后push_up的时候不用管自己的左右儿子是否为空,直接返回 阅读全文
posted @ 2019-01-18 22:29 风浔凌 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 对于LCT的操作,维护边的话,必须要把边建成一个点,把边权当成点的权值。 这个题就是给你一个无向图,然后每条边都有两个值,现在要求你求出从点1到点n的路径上,作为边权的两个值加起来 最小中的最大值是多少。qwq 有一个比较显然的做法是将其中一个值(比如说a)进行排序,然后按照a 阅读全文
posted @ 2019-01-18 20:12 风浔凌 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" LCT维护连通性的一类题目。 首先看到删边+询问联通相关立刻想到倒着做,将删边操作替换成加边操作。 用LCT来维护。因为LCT是关于树的数据结构,不能维护图怎么办呢。 我们有一个很显然的认识是,倒着做的话,如果加入的一条边的两个端点已经在一个联通块里面了,那么两点之间原先连的所 阅读全文
posted @ 2019-01-18 16:16 风浔凌 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" LCT维护连通性类型的题目,主要是要搞清楚findroot函数的作用——判断根是否相同,和并查集里面的find()函数有异曲同工之妙,如果根相同可以认为两个点具有连通性。 先access打通一道到x的实边,现在x是深度最大的节点。然后再splay x到根节点,因为它深度最大,这 阅读全文
posted @ 2019-01-18 09:05 风浔凌 阅读(117) 评论(0) 推荐(0) 编辑
摘要: bzoj2631(权限题。。。): "链接" 落咕: "链接" 考察的是LCT维护链上信息。 但是这个题不一样的是又有加法又有乘法。。。(有木有想到落咕的模板——线段树2qwq) 因为乘法的运算优先度比加法高,所以我们要先做乘法再做加法(证明?去看线段树2的题解吧),push_down的时候要注意一 阅读全文
posted @ 2019-01-18 08:12 风浔凌 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 比较模板的LCT了。。。。 如果是更改操作的话就是先断开它和原先往后弹到的那个边,之后再连上新边。 如果是查询操作就询问它到弹飞点的距离。 那么弹飞点如何处理呢?就是新开一个点(比如说n+1)当某个点如果会被弹飞的话就向它连一条边即可。 注意函数中x,y的先后关系是有影响的。 阅读全文
posted @ 2019-01-17 22:48 风浔凌 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 算是LCT的板子题了吧qwq 大家不会LCT的可以去看flush_hu dalao的博客,也可以去看attack dalao的博客,都写得超级好呢qwqwq 不过大家要注意findroot那一点需要push_down一下啊qwq,要不然可能说不准哪个题就会挂掉qwqwq 代码如 阅读全文
posted @ 2019-01-17 20:47 风浔凌 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 还是splay啦!但是有一点不同的是,这次有加减操作了。但是splay不支持怎么办啊qwq 转化呗。我们开一个变量cur来记录从开始到现在一共减去了多少钱,然后插入查询等等操作时把它加上或者减去就行了。 注意开始不要插入极小值,因为那个小于min值,是不合法的啦qwq会对后面的 阅读全文
posted @ 2019-01-17 17:48 风浔凌 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 其实也就是一个splay而已了。 但是一定要注意这种需要计算的,刚开始insert的时候插入极大值极小值的时候不要让它爆掉int.......(比如我刚开始就写了一个2147483647,一个 2147483647) 记录一个变量来表示当前是宠物剩余,还是领养者剩余。其他的没有 阅读全文
posted @ 2019-01-17 15:09 风浔凌 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 其实这个题不用平衡树也可以过的??(数据太水了啊) 但是我还是本着联系平衡树的想法打了一遍平衡树。 既然是最小的波动,那么直接找前驱后继就可以了呀qwq 代码如下: include include include include define MAXN 100010 using namespace 阅读全文
posted @ 2019-01-17 13:03 风浔凌 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 网络流另开了一个专题,所以在这里就不详细叙述了。 图 一般表示为$G=(V,E)$,V表示点集,E表示边集 定义图G为简单图,当且仅当图G没有重边和自环。 对于图G=(V,E)和图G2=(V2,E2) ,若V2是V的子集,E2是E的子集,那么图G2是图G的子图。 拓扑排序问题 对于有向图,如果不存在 阅读全文
posted @ 2019-01-17 10:52 风浔凌 阅读(837) 评论(0) 推荐(1) 编辑
摘要: 判断链 每个点的度数不超过2 判断树 n个点,n 1条边 每两个点之间的路径唯一 多叉树转换成二叉树 第一个孩子作为左孩子,第一个孩子的兄弟作为它的右孩子。 最小生成树 切割性质 假定所有边权均不相同。设S为既非空集也非全集的V的子集,边e是满足一个端点在S内,另一个端点不再S内的所有边中权值权值最 阅读全文
posted @ 2019-01-17 01:52 风浔凌 阅读(1281) 评论(0) 推荐(1) 编辑
摘要: 是一个dfs序列的应用。~~我是来水博客的???~~ ~~具体的讲解以及其他的一些应用请看我的这篇学习笔记 "戳我" ~~ 我又在推销博文了qwq 其实就是在对树进行dfs序遍历之后,它的每个子树都在一个区间以内(好吧,你要说树链剖分轻松搞定。。。。但是以来那个不也是有这种思想,二来树链剖分好长,不 阅读全文
posted @ 2019-01-17 01:16 风浔凌 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 算是点分治的模板吧,把每条边都模3归类就可以了。 模板我是学yyb dalao的。 计算calc函数的时候有一点改进就是不需要把所有的节点的枚举一遍了,可以直接通过相互关系计算得出qwq。 至于为什么前面不同的要乘以二呢?大家可以思考一下,原先我们要枚举每个点然后是一个平方的算法,然后自然是值不同的 阅读全文
posted @ 2019-01-15 20:52 风浔凌 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 题目翻译的话。。。。去vjudge上看看,~~可以看到很好玩的翻译~~ 其实是一个01规划的模板。 题目中会给我们两个数组a,b。 我们需要求的是选出n k+1个数,使得他们的$\frac{\sum a[i]}{\sum b[i]}$最大 之后就可以转化一下为$\sum a[i 阅读全文
posted @ 2019-01-15 15:38 风浔凌 阅读(121) 评论(0) 推荐(0) 编辑
摘要: m=1的时候很简单 不说了。 m=2的时候的动态规划需要讨论,有点麻烦。 我们设dp[i][j][k]为处理到第i行,已经使用了j个矩阵,这一行采取k的取用方式。 其中0表示什么都不拿。 1表示只要左边的。 2表示只要右边的。 3表示两边都要,且分开加入矩阵。 4表示两边都要,放在一个矩阵中。 然后 阅读全文
posted @ 2019-01-15 00:01 风浔凌 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 大概的题意就是每次可以对一个数加一或者减一,然后用最小的代价使得原序列变成不下降的序列。 因为是最小的代价,所以到最后的序列中的每个数字肯定在原先的序列中出现过。(大家可以想一下到底是为什么,或者简单举几个例子验证一下) 我们用一个c数组拷贝原先的a数组,然后进行从小到大排序。 那么之后我们考虑DP 阅读全文
posted @ 2019-01-14 18:16 风浔凌 阅读(285) 评论(0) 推荐(0) 编辑
摘要: "1542" "1255" 两道扫描线+线段树的入门题。 基本没有什么区别,前者是模板,后者因为是求覆盖次数至少在两次以上的,这个同样是具有并集性质的,所以把cover的判断条件更改一下就可以了qwq。 hdu1542 代码如下: cpp include include include includ 阅读全文
posted @ 2019-01-13 18:17 风浔凌 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 最小生成树的变形——将边权赋予到点权(当然还有一种是将点权赋到边权) 显然将边权分一半给旁边的点,然后最小生成树就可以了。 因为如果两个人分别把这个边两边的点选走了,他们相当于谁都没有拿到这个边的边权。但是如果一个人拿到了两个点,就相当于拿到了这条边的边权。 直接贪心即可》》》 不过需要注意的是将边 阅读全文
posted @ 2019-01-13 13:05 风浔凌 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 对于一行上的两个星星,假设它们的坐标为$x1,x2$ $x1 x1+1$ $x2 x2 1$ $(x1+1)^2=x1^2+1+2 x1$ $(x2 1)^2=x2^2+1 2 x2$ 变化量=2 (x2 x1+1)=2乘一次释放的能量 考虑是二维的,所以我们定义一个星星的能量为$x^2+y^2$, 阅读全文
posted @ 2019-01-13 12:57 风浔凌 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 题目链接: "戳我" 其实是矩阵树定理模板题。 但是要注意不合法的情况预处理的时候设置成0,要不然计算行列式的时候有问题。直接跳过不合法情况,不给它建立新点就行了。 代码如下: cpp include include include include define mod 1000000000 usi 阅读全文
posted @ 2019-01-12 22:45 风浔凌 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 链接: "戳我" 反Nim游戏模板题,不会Nim的可以去网上看看,或者看看蒟蒻的这篇 "OI数学 简单学习笔记" ,在下面博弈论部分有介绍与证明。 代码如下: include include include define MAXN 100010 using namespace std; int t, 阅读全文
posted @ 2019-01-12 18:05 风浔凌 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 持续更新! 基本上只是整理了一下框架qwq。 。。怎么说呢,最基础的模板我就我不说了吧qwq,具体可以参考一下这位大佬写的博客: "最大流,最小割,费用流" 费用流 跑最大费用流的时候可以把边权都变成负的,然后按照原先的方法跑最小费用流即可。 每个点只能经过一次的时候,就拆点,然后两个点之间连容量为 阅读全文
posted @ 2019-01-10 13:13 风浔凌 阅读(671) 评论(0) 推荐(0) 编辑
摘要: ```cpp include include include include define MAXN 100010 using namespace std; int n,m,t,s,rt,tot,kkk; int id[MAXN],siz[MAXN],son[MAXN],dep[MAXN],top[ 阅读全文
posted @ 2019-01-09 00:01 风浔凌 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 哇啊啊啊,这个题会爆int!!!要记得开long long 啊!没开long long浪费我好长时间啊!!! 这是一个神奇的题emmmmm.......点修改很简单吧,那么其实主要解决的问题就是树上两点之间所有点权中,能否存在任意三个使得它们可以作为边构成三角形。我们考虑什么时候才能构成三角形?显然 阅读全文
posted @ 2019-01-08 19:07 风浔凌 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 蒟蒻的第一道后缀数组的题目!!(update:现在也有SAM版本的啦!!) SA是个好东西,本题就是考察它的经典应用——求一个字符串里面两个后缀的最长公共前缀! 所以我们就可以考虑把两个字符串拼起来,然后查找两个后缀,使得他们的最长公共前缀最长。 然后就是板子了吧qwqwq(感觉SA的写法和网上很多 阅读全文
posted @ 2019-01-07 21:35 风浔凌 阅读(112) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页