随笔分类 - OJ---洛谷
摘要:Solution 考虑一下这个东西的模型转换: $\frac{\sum_{i=1}^n{a_i}}{\sum_{i=1}^n{b_i}}$ 然后转换一下发现显然是01分数规划。 $\sum_{i=1}^n{b_i} mid\leq \sum_{i=1}^n{a_i}$ 然后再移项: $0 \leq
阅读全文
摘要:Solution 考虑这题$n$这么小,肯定是什么状压或者搜索。 考虑状压: 设$f_i$表示现在选的数的集合为$i$的最小费用,显然我们可以根据遍历点的顺序来确定点的深度。 长度的话每一次选一个当前集合内的点向外更新,如果到达点不在集合内直接加进来判一下就好了。 这个东西用dfs比较好实现。 代码
阅读全文
摘要:前言 ~~多项式求逆还是爽的一批~~ Solution 考虑分治求解这个问题。 直接每一次NTT一下就好了。 代码实现 cpp include include include include include include include using namespace std; define ll
阅读全文
摘要:前言 其实我觉得你看猫锟的解释也看不懂(~~主要是还有一些不良心的讲解者不讲清楚~~,当然这里不是针对了qwq) "猫锟链接" Solution 考虑我们的线段树是个啥玩意? 每一层都是一堆区间叠在一起。 我们在每一个节点维护的又是什么? 左边的max,右边的max,中间的max,还有sum。 那么
阅读全文
摘要:前言 这一个Task被神仙们吊着打。 Solution 考虑对于每一个(i,j)显然(i,j 1)和(i+1,j)都是要选的,然后连边。 再一看,最大权闭合子图? ~~我去,FAQ~~ 直接跑网络流最小割。。。 代码实现
阅读全文
摘要:前言 线段树菜鸡报告,stO "ZCDHJ" Orz,GSS基本上都切完了。 Solution 考虑一下用线段树维护一段区间左边连续的Max,右边的连续Max,中间的连续Max还有总和,发现这些东西可以相互合并,然后直接写就好了。 cpp include include include includ
阅读全文
摘要:前言 其实我只是为了过掉模板而写的ddp,实际应用被吊着锤 Solution ~~并不想写详细的过程~~ 一句话过程:将子树中轻儿子的贡献挂到这个点上面来 详细版:(引用yyb) 总结一下的话,大致的过程是这样子的:首先我们考虑我们的转移方程,发现能够将其改写为矩乘的形式,那么我们首先将转移改为矩乘
阅读全文
摘要:前言 为什么他们能够切的那么快啊。 Solution 虽然我不会怎么区分最大流和最小费用最大流,但是最大流可以看成最小割,这样子就好区分一些。 考虑这个东西相当于是二分图求一个最小割,直接Dinic套上去就好了。
阅读全文
摘要:前言 网络流24题怎么这么难做啊。 Solution 考虑这是一个二分图,按照给出的图发现黄色不能攻击黄色,红色不能攻击红色。 然后就是一个裸的二分图求最小割,直接跑Dinic就好了,无脑实现。 cpp include include include include include include
阅读全文
摘要:前言 网络流被hbx吊起来打 Solution 考虑一下这个走法是不是和象棋中马的走法一模一样(~~废话~~) 那么显然我每一次移动是走三次,如果将棋盘二分图染色一下,不就是每一次只能走到另一个颜色的吗? 然后我们题目中求的是最多可以放置多少个装置,不能够攻击,也就是一个裸的二分图最小割? 直接最大
阅读全文
摘要:前言 突然发现自己在图论①被dalao吊着打。。。 Solution 看到数据范围1000,感觉可以直接枚举连边,然后新建两个点就好了。 注意要拆点,不然可能会死循环~~(过来人)~~ 代码实现 cpp include include include include include include
阅读全文
摘要:前言 网络流的练习为什么我又排在最后啊!!! Solution 我们先来挖掘一个式子: $$ ab+cd ad+bc(a include include include include include include include include using namespace std; defi
阅读全文
摘要:前言 网络流24题还是要写一下。 Solution 我们先来研究一下这个题目是个什么东西: 每一个点有可能比平均数多,也有可能少,然后你就发现相当于是我们建了两个超级源点和超级汇点,然后从这两个点去分和流入。 然后对于这个环就可以直接建环(注意建边的时候的一些细节操作) 跑一边费用流就好了。 cpp
阅读全文
摘要:前言 Q:为什么突然想搞网络流? A:迫于~~Tham_蛤mu~~的~~淫威~~ 算法过程 1. 用最短路算法求出s t的路径(把路径要抠出来,而且每条边要有容量) 2. 算一下路径里面的可以流过的最大的流量 3. 发现此时的花费就是$dis_t Flow$,累加即可. 4. 重复1 3直到不能够到
阅读全文
摘要:前言 突然发现到了新的一年什么东西好像就都不会了~~凉凉~~ 算法步骤 1. 建残量网络图 2. 在残量网络图上跑增广路 3. 重复1直到没有增广路(注意一个残量网络图要尽量把价值都用完,不然会浪费建图的时间) 代码实现 cpp include include include include inc
阅读全文
摘要:前言 网络流24题还是要做完吧! 题解 这是一道模板题,这里主要讲一下怎么匈牙利二分图匹配: 1. 对于左边的枚举每一次选的左边的人 2. 对于右边与他有连边的那么就是能换则换,不然就不换 3. 最后统计出来的就是$ans$ 差不多就是这样子了吧。 cpp include include inclu
阅读全文