摘要:
传送门 解题思路 概括一下题意:求min(sumw/sumn),其中sumw表示一个环上的边权和,sumn表示一个环上点的数量。 这种分数规划问题很常见的一个套路为二分答案,然后转化成01分数规划。 即二分一个比值k,判断有无环满足sumw/sumn<=k,也就是sumw-sumn*k<=0。进一步 阅读全文
摘要:
传送门 解题思路 先吐槽一下某谷翻译能不能把输入格式也翻译一下,感觉输入格式比题目描述都长。。 观察到p非常小,于是考虑状态压缩,将当前能打的怪物压缩成一个二进制数。 按照每个二进制数分层,一共分得 2^13=8192 层。 边全部存下会MLE,所以考虑在转移的时候判断一下,只有出边的状态是现在状态 阅读全文
摘要:
传送门 什么是分层图 在一个图上,按照某种限制,进行分层,在相邻两层之间按照某种联系进行连边。 如何实现 一般有两种方法:二维数组法和状态压缩法。 二维数组法:a[i][j]表示第i层的节点j。 状态压缩法:a[j*k+i]表示第i层的节点j,其中k表示层数。(相当于把二维坐标压成一维。) 应用 在 阅读全文
摘要:
众所周知,spfa已死。 我们能做到的,只是尽可能的优化一点,减少被卡死的情况。 SLF优化 SLF:即 Small Label First,就是每次进队元素跟队首比较,若dis大于队首元素,则将其插到队尾,否则插到队首。 LLL优化 LLL:即 Large Label Last,每次进队元素的di 阅读全文
摘要:
传送门 解题思路 关于spfa,他死了 显然是差分约束。每日背规律: 小于等于最短路,求出上界最大值; 大于等于最长路,求出下界最小值。 于是建立大于等于的关系,spfa跑一遍最长路,判断有无正环,最后答案就是各个dis之和。 为保证都为正整数,需要从超级源点0向其他所有点建立一条边权为0的边。 ~ 阅读全文