SDOI2010 猪国杀

Link

题解

要仔细看题。

题面的bug:

  • 样例少了个J
  • 反猪是”FP”不是”AP”

注意的事项:

  • 猪不会对没有表明身份的猪用无懈可击(包括自己,所以可能有一堆J但是打不了)
  • 无懈可击可以无懈无懈可击,顺序是从自己开始(包含自己),询问一圈。
  • 如果有猪哥连弩直接装上弃掉,不管之前有没有装
  • 决斗从自己顺时针开始,只会对当前认为关系对立的猪使用,杀只能杀到自己下一个猪
  • AOE对主猪造成伤害并且自己之前没有跳过身份才会被认为是类反猪
  • 主猪和忠猪都会针对类反猪,帮助自己认为同阵营的猪(反猪同理)
  • 牌如果用完就一直拿最后那张(不然RE=2)
  • 表身份的牌只有:杀,南,万,无懈。
  • 弃牌包括装备
  • 有桃吃桃,但是桃只能对自己使用(忠不能救主233)
  • 如果成功出牌,先判断游戏是否结束,然后自己的牌组开始扫,直到出不了。自己的出牌可能会影响局面的身份导致前面的不能出的牌可以出了,猪哥连弩也会让前面的杀可以出了
  • 死亡了以后最好把牌组清空,因为自己和别人决斗可能会导致自己死亡,要及时结束回合。
  • 猪的位置最好用链表维护
  • 输出调试语句太多会导致TLE
  • 基本不用考虑时间复杂度

代码

自己是和网上的std对着输出调试+模拟样例才调出来的。
调试语句就不删了,留着造(bao)福(fu)社会。

Leave a Reply

Your email address will not be published. Required fields are marked *