摘要: 原题链接 考察:树形dp+二分 思路: 化为01分数规划后,每个人的贡献是 p[i] - mid*s[i],注意一下后面并非图论问题,因为不需要回到源点.因为取某个人的条件是那个人的推荐人也在队列中,所以是树形背包问题. 普通的树形背包时间复杂度是O(n3),TLE是明显的.(所以本蒟蒻紧急学了树形 阅读全文
posted @ 2021-05-06 22:10 acmloser 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:01分数规划+SPFA 思路: 基本是和观光奶牛一样的题,这题的边权化为 sgma(w[i]) - mid.然后判断是否存在负环. 但是会TLE 5个点,此时可以用玄学优化,如果已经转了5圈就说明存在负环. 1 #include <iostream> 2 #include <cstr 阅读全文
posted @ 2021-05-06 18:13 acmloser 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:01分数规划+01背包 错误思路: 二分求最大值,check函数里对 t[i] - mid*w[i]排序,从大到小选,只要和为sum就一直选,最后检测选择的W是否>=m 这个思路错在不能从大到小选,因为存在t[i] - mid*w[i]很小,但是w[i]很大使原本从大到小的W>=m 阅读全文
posted @ 2021-05-06 16:37 acmloser 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:01分数规划 思路: 由奶牛观光所说,01分数规划基本是在考察二分与其他算法的结合.这里也可以化为累加 a[i] - mid*b[i] 注意原式子*100,所以mid需要/100 我们用C数组保存a[i] - mid*b[i]的值,然后选出最大的n-k个,如果和>=0就说明正确. 1 阅读全文
posted @ 2021-05-06 10:35 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:二分+SPFA 引入:形如 ${\sum_1n f[i] \over \sum_1n g[j]}$求其最大值,称为01分数规划问题.通过二分最大值,检验解的存在性,这样的存在性具有单调性,所以可以用二分解决. 思路: 想到二分之后,我们可以假设最大值 = mid,对于每一个环,检验$ 阅读全文
posted @ 2021-05-06 01:12 acmloser 阅读(40) 评论(0) 推荐(0) 编辑