首页 > TAG信息列表 > 城池

BZOJ-4003 [JLOI2015]城池攻占

文章目录 题面题解 题面 传送门 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。 这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, 其中 fi <i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1 到 m 的整数

P3261 [JLOI2015]城池攻占 可并堆

题意: 戳这里 分析: 又是一道巨佬秒切了的题 我们以每个城市作为一个小根堆,把骑士作为元素,每次弹出不符合的元素之后 向自己的 \(fa\) 进行合并,同时更新堆内的每一个元素 注意特判堆是否为空 代码: #include<bits/stdc++.h> #define lc t[rt].ls #define rc t[rt].rs #define pb push

千古风流人物

“这,这是什么东西?” 徐洛愣住了,按照自己脑海内早就熟悉的不能熟悉的攻略,这东西似乎不是帝国时代里面的吧? 难道说,这是自己的金手指吗? 一想到这里,徐洛就开始激动了,果然他就知道,身为穿越者,怎么会没有自己的金手指? 当下徐洛小心翼翼的伸手触摸这本所谓的万古花名册! 而在触摸到的

[JLOI2015][左偏树] 城池攻占

题目链接 考虑每个节点建一个以骑士攻击力为关键字的小根堆,从叶子节点向上扫描,每次弹堆至堆顶骑士攻击力大于当前城池防御力,可以采用左偏树维护, 对于城池的攻击力改变值,可以借用线段树区间修改的懒标记思想,打上乘法及加法标记,每次涉及到改变堆结构的操作前下放标记即可。 稍微卡常

[JLOI2015]城池攻占

[JLOI2015]城池攻占 solution 如果战斗力最小的士兵都能存活下来,那么在堆中的其他士兵一定可以活下来 所以就从攻击力小的开始遍历一下就行。 那么我们就需要把这两个堆里面的元素合并在一起,于是我们想到用可并堆,即左偏树,记录每个士兵开始和阵亡(或活到最后)的位置,之后第二部分的答

题目分享D 三代目

题意: 小铭铭最近获得了一副新的桌游,游戏中需要用 mm 个骑士攻占 nn 个城池。 这 nn 个城池用 11 到 nn 的整数表示。除 11 号城池外,城池 ii 会受到另一座城池 fifi 的管辖,其中 fi<ifi<i。也就是说,所有城池构成了一棵有根树。这 mm 个骑士用 11 到 mm 的整

3D 城池攻占 —— 左偏树

出处:https://www.cnblogs.com/youxam/p/p3261.html 题目 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。 这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi< i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1

P3261 [JLOI2015]城池攻占 题解

题目 小铭铭最近获得了一副新的桌游,游戏中需要用 \(m\) 个骑士攻占 \(n\) 个城池。这 \(n\) 个城池用 \(1\) 到 \(n\) 的整数表示。除 \(1\) 号城池外,城池 \(i\) 会受到另一座城池 \(f_i\) 的管辖,其中 \(f_i < i\)。也就是说,所有城池构成了一棵有根树。这 \(m\) 个骑士用 \(1\) 到

「Luogu P3261 && LOJ 2107」城池攻占

小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi <i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1 到 m 的整数表示,其中第 i 个骑士的初始战斗力为 si,第一个

luoguP3261 [JLOI2015]城池攻占

题意 暴力自然是模拟,考虑优化下模拟的过程。 我们对每个点开个左偏树,初始为在该点的骑士,之后dfs过程当中从儿子向父亲合并,同时弹出小于当前点的骑士,增加当前点的答。对于每个骑士的答案,我们记录他的起始点和终点即可。 code: #include<bits/stdc++.h> using namespace std; #defin

P3261 [JLOI2015]城池攻占 左偏树

   题目描述 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi <i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1 到 m 的整数表示,其中第 i 个骑士的初始战

【左偏树】 [JLOI2015]城池攻占

原来左偏树还可以打tag,get了 和线段树打tag一样,时不时Push_Down就好了 然后这里显然也是要先乘法后加法的 tag打上了之后还是其他一般左偏树差不多,有些细节注意一下 然后开 long long!!!   1 #include<bits/stdc++.h> 2 #define int long long 3 #define writeln(x) write(x),

BZOJ4003[JLOI2015]城池攻占——可并堆

题目描述 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池。 这 n 个城池用 1 到 n 的整数表示。除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, 其中 fi <i。也就是说,所有城池构成了一棵有根树。这 m 个骑士用 1 到 m 的整数表示,其 中第 i 个骑士的初始战斗力