吸取教训
查看原帖
吸取教训
671013
KawaragiMomoka楼主2024/10/20 21:01

本蒟蒻在做本题的时候看到加法和乘法直接放弃思考,基本按照线段树模板 2 的思路来写线段树,然后因为乘完还要除回去,所以把数据用 double 来存,以乘 1x\frac{1}{x} 来代替除以 xx

然后,我在线段树二分的时候,存左子树值的变量写成了 long long。。。好久才发现,还在那里想为什么会输出那么多一样的数。

ll queryIndex(ll root, ll k) {
	if (tree[root].left == tree[root].right) return tree[root].left;
	pushdown(root, tree[root].left, tree[root].right);
	double lpart = tree[root << 1].sum;
//	ll lpart = tree[root << 1].sum;
	if (lpart < k) return queryIndex(root << 1 | 1, k - lpart);
	return queryIndex(root << 1, k);
}
2024/10/20 21:01
加载中...