随笔分类 - 算法
摘要:预备知识 二分图:如果一张无向图$(V,E)$存在点集$A,B$,满足$|A|,|B|≥1$,\(A∩B=\empty\),\(A∪B=V\),且对于$x,y∈A$或$x,y∈B$,\((x,y)\notin E\),则称这张无向图为二分图,$A,B$分别为二分图的左部和右部。 图的匹配:对于一张无
        阅读全文
                
摘要:最大流问题 最大流问题满足以下三个条件: 容量限制:\(f(u,v)≤c(u,v)\) 斜对称性:\(f(u,v)=-f(v,u)\) 流量平衡:\(\sum_ {(u,v)∈E}f(u,v)=0\)(除$s$,$t$外的图中任意两点) 原图中不存在的边也假设存在,视为容量为0. 残量网络:计算出每
        阅读全文
                
摘要:迭代加深搜索(IDDFS) 一、IDDFS是什么 IDDFS是在DFS基础上增加迭代加深这一步的一种搜索算法。 迭代加深体现在以下两步: 预先估算答案所在深度,即一个深度约束值; 若在当前约束值下未能找到答案,则加大深度约束值,继续搜索。 二、IDDFS解决什么问题 当问题的答案满足以下两个条件: 
        阅读全文
                
摘要:Power Calculus 题意:问最少经过多少次乘除法混合运算之后,可以用$x$计算得到$x^n$。可以使用中间值,但不能出现负次方幂。 思路:因为$n<≤1000$,可以直接用一个数组记录得到的中间值。每一次用当前得到的数进行下一步计算,都遍历一次所有中间值,乘和除都试一遍就好了。 但如果单纯
        阅读全文
                
摘要:P2901 [USACO08MAR]Cow Jogging G 思路:先反向建边求各点到节点1的最短路,再A*依次得到节点$n$到节点$1$的第$k$短路。 总体来说就是改进版的BFS,在BFS的基础上另外设定了一个估价函数作为节点出队顺序的依据,而不像BFS那样先入队者先出队。在本题中,估价最小的
        阅读全文
                
摘要:P1880 [NOI1995]石子合并 做过类似的,不过这题稍微有点不一样:是环不是链。 只要把链复制一遍原来的链的后面,就可以化环为链了。 注意题目求的是N堆石子合并,枚举区间长度的时候依然是从2枚举到N。 int a[maxn]; int b[maxn]; //前缀和 int dp1[maxn]
        阅读全文
                
摘要:P3146 [USACO16OPEN]248 G \(dp[l][r]:=\) 区间$[l,r]$全部合并时可得到的最大数字。 由题意可以推出状态转移方程(注意新的数值是原来的数值+1): \[ dp[l][r]=max(dp[l][r],dp[l][k]+1) \] 注意,只有相邻且数字相同的两个
        阅读全文
                
摘要:P1273 有线电视网 注意最里面那一层循环是在枚举物品:“选1个叶子节点”、“选2个叶子节点”…… 因为最多只能选$cnt$个叶子节点($cnt$为当前子树中的叶子节点个数),一种优化是先统计出这个$cnt$,最里面那层循环从1跑到$cnt$与$j$两者之间的最小值就可以结束了,都跑到$j$会TL
        阅读全文
                
摘要:P5322 [BJOI2019]排兵布阵 因为看到这题目分类在分组背包下,所以一直在试图抽象出分组背包的模型来……最后很接近答案了,对于第$i$座城堡所有玩家的出兵数量视为一组物品……再想到分组背包的板子,应该每组只能挑一个物品。但是结合题目,挑的物品不一样收益也不一样,这个收益该怎么计算卡住了我…
        阅读全文
                
摘要:一、01背包 \(dp[i][j]:=\) 决策第$i$种物品、背包总容量为$j$时的最大价值 则$dp[i][j]$的取值有两种: 不取第$i$种物品,直接继承$dp[i-1][j]$ 在$dp[i-1]k$的基础上,取了第$i$种物品,装入。装入之后容量为$j$的背包恰好装满或装不满。 则 \[
        阅读全文
                
摘要:D - Decrease the Sum of Digits 只要发现进位可以直接抹掉后面的位数就行了,剩下的就是在第几位进位的问题。写得繁琐了一点。 int main() { //ios::sync_with_stdio(false); //while (scanf("%d%d",&n,&m)!=
        阅读全文
                
摘要:P5490 【模板】扫描线 首先有这么一张图,要求它的面积并。 我们想,如果可以有一条扫描线从下往上扫,记录它所扫到的边的长度(并)\(len\),再求出这条边与即将扫到的下一条边的距离$h$,那么我们就可以求出第一块面积(紫色)\(S_1=len\times h\) 然而如何求出这个$len$? 
        阅读全文
                
摘要:畅通工程再续 HDU - 1875 思路: 1.将一条边加入最小生成树时有额外条件,注意一下即可。 2.如果所有点均可连通,那么应该在同一个集合里,也就是有同一个根节点;如果出现了不同的根节点说明没有全部连通。 然后就是套模板。 const int maxn = 100 + 10; const in
        阅读全文
                
摘要:Truck History POJ - 1789 题意: 给定$n$个互不相同的长度为$7$的字符串,将两个字符串之间的距离定义为两串中字符不同的位置个数,问$1/Q$的最大值,其中$Q=\sum^_{d(,)}$。 思路: 求的就是最小生成树的总边权……除了距离需要另外算一下以外就是套模板。 co
        阅读全文
                
摘要:Arctic Network POJ - 2349 相似题目:POJ 2253 Frogger 题意: 给定$p$个哨所的坐标,可任意使其中$s$个拥有卫星通讯功能。任意两个具有卫星通讯功能的哨所视为连通。在剩下的哨所之间建立无线电路径,路径的花费$D$为哨所之间的距离。求能使所有哨所连通的最小的$
        阅读全文
                
摘要:Constructing Roads POJ - 2421 题意: 给定$N$个村庄,每个村庄给定$N$个整数,为从它出发到各个村庄(包括它自己)的距离。再给$Q$条信息$x,y$,表示村庄$x$与村庄$y$之间已经有道路。问使所有村庄连通的要修的路的最短总长度。 思路: 这题应该是考察对最小生成树
        阅读全文
                
摘要:题前没标注的都是板子题…… 1.Jungle Roads POJ - 1251 2.Networking POJ - 1287 (太板子了,略) 3.Building a Space Station POJ - 2031 4.Constructing Roads POJ - 2421 5. 6.Tr
        阅读全文
                

浙公网安备 33010602011771号