P7177 [COCI2014-2015#4] MRAVI 题解

思路。

我们知道最初添加的液体越多,那么每个蚂蚁得到的液体也就越多,又因为标签里有深搜,所以可以用 DFS+二分解决(感觉说了一通废话),算是比较常规的一种解法了。

在此题中我们需要魔改一下建树,需在其中添加判断此边是否为超级管道和处理通过液体的百分比这两段代码。

DFS 和二分的代码是最重要的,但也是最简单的。

温馨提示:此题的码量有点逆天,根本不像正常的 DFS + 二分的题的码量,所以就不放完整代码了,也请各位注意。

其他就没什么了。

核心 DFS + 二分代码。

cpp 复制代码
void dfs(int x,int f) {
	for(int i=tou[x]; i; i=ed[i].nxt) {
		int y=ed[i].to;
		double res=0;
		if(y==f){
			continue;	
		}
		res=ll[x]*ed[i].w;
		if(ed[i].opt){
			res*=res;
		}
		ll[y]+=res;
		dfs(y,x);
	}
}
bool zhao(double mid) {
	for(int i=1; i<=n;i++){
		ll[i]=0;
	}
	ll[1]=mid;
	dfs(1,0);
	for(int i=1; i<=n;i++){
		if(ll[i]<k[i]){
			return 0;
		}
	}
	return 1;
}
相关推荐
Tisfy3 天前
LeetCode 2110.股票平滑下跌阶段的数目:数学(一次遍历)
数学·算法·leetcode·题解
Tisfy5 天前
LeetCode 3606.优惠券校验器:分类 + 排序
leetcode·题解·排序
Tisfy7 天前
LeetCode 3531.统计被覆盖的建筑:最大最小值
算法·leetcode·题解·桶排序
Tisfy8 天前
LeetCode 3577.统计计算机解锁顺序排列数:脑筋急转弯(组合数学)
算法·leetcode·题解·组合数学·脑筋急转弯
滑稽的小Z9 天前
SP2530 GNY07H-Tiling a Grid With Dominoes 题解
c++·动态规划·题解
Tisfy9 天前
LeetCode 3583.统计特殊三元组:哈希表计数
算法·leetcode·散列表·题解·哈希表·计数
Juan_201218 天前
P2865 [USACO06NOV] Roadblocks G 题解
c++·算法·图论·题解
cpp_250119 天前
P5412 [YNOI2019] 排队
数据结构·c++·算法·题解·洛谷
cpp_25011 个月前
P1765 手机
数据结构·c++·算法·题解·洛谷
Tisfy2 个月前
LeetCode 3289.数字小镇中的捣蛋鬼:哈希表O(n)空间 / 位运算O(1)空间
算法·leetcode·散列表·题解·位运算·哈希表