题目名称 | 2178. [JLOI 2015] 城池攻占 |
---|---|
输入输出 | fall.in/out |
难度等级 | ★★★☆ |
时间限制 | 2000 ms (2 s) |
内存限制 | 512 MiB |
测试数据 | 9 |
题目来源 | stone 于2016-03-16加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:28, 提交:132, 通过率:21.21% | ||||
卜卜 | 100 | 1.746 s | 24.35 MiB | C++ |
Anson | 100 | 1.998 s | 32.36 MiB | C++ |
Smdpm | 100 | 2.093 s | 32.36 MiB | C++ |
wzf2000 | 100 | 2.201 s | 37.30 MiB | C++ |
ztx | 100 | 2.299 s | 10.62 MiB | C++ |
Cloud | 100 | 2.315 s | 39.20 MiB | C++ |
ztx | 100 | 2.363 s | 10.62 MiB | C++ |
Hzoi_Mafia | 100 | 2.464 s | 17.77 MiB | C++ |
YZ亮晶晶 | 100 | 2.639 s | 24.94 MiB | C++ |
ZXCVBNM_1 | 100 | 2.737 s | 25.50 MiB | C++ |
关于 城池攻占 的近10条评论(全部评论) | ||||
---|---|---|---|---|
爆栈啦~\(≧▽≦)/~
| ||||
自己YY了一下午的左偏树
结果发现YY的左偏树没打错 在树上跑bfs打错了= = 根本不能bfs啊qwq | ||||
爆栈+1
AAAAAAAAAA
2017-07-02 17:10
3楼
| ||||
回复 @zys :
有。
/k
2016-04-15 20:17
2楼
| ||||
爆栈啦!!!!
在BZOJ上11584 ms低空掠过(时限是10000ms???貌似是倒一???),无奈在这里T成~,于是乎将时限设为3s。。。 话说我写的有这么渣吗 |
小铭铭最近获得了一副新的桌游,游戏中需要用 $m$ 个骑士攻占 $n$ 个城池。
这 $n$ 个城池用 $1$ 到 $n$ 的整数表示。除 $1$ 号城池外,城池 $i$ 会受到另一座城池 $fi$ 的管辖,其中 $fi<i$。也就是说,所有城池构成了一棵有根树。
这 $m$ 个骑士用 $1$ 到 $m$ 的整数表示,其中第 $i$ 个骑士的初始战斗力为 $si$,第一个攻击的城池为 $ci$。每个城池有一个防御值 $hi$,如果一个骑士的战斗力大于等于城池的生命值,那么骑士就可以占领这座城池;否则占领失败,骑士将在这座城池牺牲。占领一个城池以后,骑士的战斗力将发生变化,然后继续攻击管辖这座城池的城池,直到占领 $1$ 号城池,或牺牲为止。除 $1$ 号城池外,每个城池 $i$ 会给出一个战斗力变化参数$ai$;$vi$。若 $ai =0$,攻占城池 $i$ 以后骑士战斗力会增加 $vi$;若 $ai =1$,攻占城池 $i$ 以后,战斗力会乘以 $vi$。
注意每个骑士是单独计算的。也就是说一个骑士攻击一座城池,不管结果如何,均不会影响其他骑士攻击这座城池的结果。
现在的问题是,对于每个城池,输出有多少个骑士在这里牺牲;对于每个骑士,输出他攻占的城池数量。
第 1 行包含两个正整数 $n;m$,表示城池的数量和骑士的数量。
第 2 行包含 $n$ 个整数,其中第 $i$ 个数为 $hi$,表示城池 $i$ 的防御值。
第 3 到 $n +1$ 行,每行包含三个整数。
其中第 $i +1$ 行的三个数为 $fi;ai;vi$,分别表示管辖这座城池的城池编号和两个战斗力变化参数。
第 $n +2$ 到 $n + m +1$ 行,每行包含两个整数。其中第 $n + i$ 行的两个数为 $si;ci$,分别表示初始战斗力和第一个攻击的城池。
输出 n + m 行,每行包含一个非负整数。其中前 n 行分别表示在城池 1 到 n 牺牲的骑士数量,后 m 行分别表示骑士 1 到 m 攻占的城池数量。
5 5
50 20 10 10 30
1 1 2
2 0 5
2 0 -10
1 0 10
20 2
10 3
40 4
20 4
35 5
2
2
0
0
0
1
1
3
1
1
对于 100% 的数据,1 <= n;m <= 300000; 1 <= fi<i; 1 <= ci <= n; -10^18 <= hi,vi,si <= 10^18;
ai等于1或者2;当 ai =1 时,vi > 0;保证任何时候骑士战斗力值的绝对值不超过 10^18。
这个题在BZOJ上总时限是10s,在这里就1s个点,但是有一个数据估计1s的不好写过,就把每个点的时限改成了2s。
由于加题人的程序可以跑进1.5秒,所以时限下调为1.5s
版权 BZOJ4003 添加:stone ID:3327