摘要:
跑最大费用最大流,把每个点拆开边权为1花费为1,连边时边权为1花费为0 开头和结尾单独处理边权为2. 字符串用map记录然后两遍dfs出结果即可。 By:大奕哥 阅读全文
摘要:
学习了半平交面。 我这里写的是训练指南中的双端队列,每次判断是否删去更优然后更新。 看hzwer中有一处不太明白就是为何要将两段加入队列 后来对拍出错才知道是因为精度,当两线重合时他们叉积返回值是一个极小值 所以判断一下精度即可。 阅读全文
摘要:
贪心。 每次将最后一个非零位加一判断即可。 一开始想少了,只关心把最后一位变成5了,其实可以都变的。 阅读全文
摘要:
这题状压DP太神了。 g[i][j][k]表示前i-1个人都已打到饭,自己和后七个人打饭的情况是j,当前最后一个打饭的与i的关系是k 如果j&1==1说明当前这个人也打了饭,那么可以转移到g[i+1][j>>1][k-1]因为i+1+k-1==i+k 然后我们再枚举当前哪个人要打饭计算状态即可。 学 阅读全文
摘要:
其实每个柱子就相当于最小路径覆盖中的一根柱子。 我们要在有n条路径的最小覆盖中加尽量多的点。 所以我们枚举答案加边即可。 By:大奕哥 阅读全文
摘要:
DAG的最小不相交路径覆盖 算法:把原图的每个点V拆成Vx 和Vy两个点,如果有一条有向边A->B,那么就加边Ax−>By 。这样就得到了一个二分图。那么最小路径覆盖=原图的结点数-新图的最大匹配数。 证明:一开始每个点都是独立的为一条路径,总共有n条不相交路径。我们每次在二分图里找一条匹配边就相当 阅读全文
摘要:
题目一开始看以为和强联通分量有关,后来发现是无向边,其实就是求原图的补图的联通块个数和大小。学习了黄学长的代码,利用链表来优化,其实就是枚举每一个人,然后把和他不相连的人都删去放进同一个联通块里,利用bfs来实现。——by VANE 阅读全文
摘要:
推荐学习WJMZBMR《重量平衡树和后缀平衡树在信息学奥赛中的应用》 转自hzwer: 在替罪羊树每个结点放一棵包含该子树所有结点的权值线段树,也就是平衡树套权值线段树 1、由于外层是平衡树,那么就能实现插入一个结点:找到它的位置,在根到其路径上所有结点的线段树中插入这个值 2、查询区间第K大:找到 阅读全文
摘要:
题意说的有问题啊。。。 应该是每种类型至少有p题,因为一道题可以向多个类型做贡献。 将源点向每题连流量为1的边,代表选一本 将每题向各种连流量为1的边,表示只能对其中一种有贡献 将每种向汇点连流量为需求的边。 记录答案第二种边判断即可 By:大奕哥 阅读全文
摘要:
就是个A*,具体原理可以参考VANE的博文。 正解要手写堆,会被卡常,也许哪天我筋搭错了写一回吧。 阅读全文
摘要:
挺神的这题,发现只有环和链两种情况 搜索时我们只考虑环的,因为链可以看成找不到分类的环。 当成链时大小是的最大值是各链长的和,最小值是3 当成环时最大值是各环长的gcd,最小值是大于3的最小的ans的约数 当有链有环时只有当环的gcd大于等于3时才有解,所以我们统计答案时要优先考虑环的情况,考虑链情 阅读全文
摘要:
考虑DP f[i][j][k]表示一行到i一行到j共取k块最大值,类似于最长公共子序列n^2那种 注意相等时可以一起拿 By:大奕哥 阅读全文
摘要:
求卡特兰数,h[i]=C(2n,n)/(n+1) 阅读全文
摘要:
建模方式: 1 :构造一个图 N ,顶点有 Ii(1<=i<=n) , Ej(1<=j<=m) 以及一个源 S 和汇 T 2 :从源点出发,向每个实验 Ei 引出一条容量为 Pi 的有向边 3 :从每个仪器 Ij 出发,向汇点引出一条容量为 costi 的有向边 4 :每个实验分别向所需的仪器引出一 阅读全文
摘要:
其实和网络流没啥关系。 按状态用二进制跑spfa。 阅读全文
摘要:
一开始以为跑费用流,后来看了题解才知道可以按天建图。 1.从源点向每一天的地球链接一条INF 2.从每一天的月亮向汇点链接一条INF 3.从上一天的每一个节点向当天的对应节点链接一条INF(因为人们可以留在中转站等一等嘛) 4.针对每一艘飞船,获取其上一天的位置,再获取这一天的位置,在这两个点之间连 阅读全文
摘要:
A*算法,也叫启发式搜索,就是设计一个预估函数,然后在搜索的过程中进行有序的搜索,我们设到目前状态的花费为f(x),到目标状态的估计花费为h(x),那么我们按照h(x)+f(x)排序即可,这道题里起点到目前的距离为f(x),目前到终点的最短路为g(x),然后进行暴力搜索即可。—— by VANE 阅读全文
摘要:
一道挺好的树上莫队板子题,可惜存在版权无法提交了。 这里给出代码供大家参考,分块操作类似于王室联盟,转成序列后和普通莫队一样。 By:大奕哥 阅读全文
摘要:
想学树上莫队结果做了个树分块。 看完题后想到了菊花图的形状认为无解,结果仔细一瞧省会可以在外省尴尬 对于每一颗子树进行深搜,一旦遇到加在一起大小达到B则将它们并为一省,因为他子树搜完以后没有分出块的大小是小于B的,而且他自己当前剩下的也是小于B的,所以可以放心和。 最后剩下的点肯定也小于B所以与最后 阅读全文
摘要:
点分治常数很大所以我们跑一遍即可。 用set记录。 一开始没有判q[i]==0惨惨了// 阅读全文