8.26模拟赛

T1 首先对于第一回合移动至多K步后,变成先打锁再移动,所以可以无视锁……BFS到一个点后,看一看到四个边界的距离,取个min,再乱搞即可。注意特判一开始就在目标位置。
另:一开始用dfs愉快GG,且BFS时注意打标记的顺序!!!

T2 首先考虑Z=0的情况,显然按照A-B排序,先全部取B,再去A-B的前X大即可。Z!=0时,同样按照A-B排序,显然在最后的方案中,存在一个分界点k,使得1~k只选A、C,k+1~N只选B、C。所以枚举这个边界,从左往右扫一次,用一个优先队列维护A-C的前X大,同理从右往左扫一次即可……

T3 对于每只鸡X,从后往前扫,对于一对鸡【i,j】,如果有一只存在于X的替死鸡集合里,就把另一只作为这只鸡的替死鸡,加入到替死鸡集合里。如果出现矛盾,那么鸡X就必须GG了……
最后枚举两只鸡的替死鸡集合是否存在交,没有则可以同时活下来。
T1:http://paste.ubuntu.com/25424668/
T2:http://paste.ubuntu.com/25424669/
T3:http://paste.ubuntu.com/25424670/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值