CodeForces 356A - Knight Tournament set or 线段树
题意:
现在有N个骑士进行M轮PK...现在告诉这M轮是谁站在台上...其将l~r所存在的骑士都打败..而若一个骑士被打败..就出局了..也就是不存在了...请输出每个骑士是被哪个骑士打败的(最后的胜利者输出0)...保证有解..
题解:
比赛的时候就是没看懂题导致各种悲剧...其实很简单...
1、set
从前往后直接搞...set很强大..就是一颗treap..支持的操作是有很多的..这里用到的是插入、删除、以及通过迭代器来遍历、查找比key刚刚好大的数...
那么每次要做的操作就是把区间内的点都标记为被当前的x打败..然后把打败的给删除...
Program:
#include #include #include #include #include#include #include
2、倒过来用线段树搞
既然前面的打败了..后面就打败不到了..不如反过来用线段树来做..相当于区间更新单点查询...这样前面的点区间就是把后面的覆盖掉..
Program:
#include#include#include#include#include#include#include#include#include
暂时没有评论,来抢沙发吧~