2016-5-22模拟测试

  • T1

    • description
      你有一个\(n \times m(n,m\leqslant 50)\)的网格,每个格子一开始没有颜色,每次你可以选择一行或者一列将它们一起涂成一种颜色,并且会覆盖掉已有的颜色。现在给出一种局面,问至少需要多少步将这个\(n \times m\)的网格涂成这这个样子或者不可能涂成这个样子
    • solution
      显然答案不超过\(n+m-1\),这就意味着必然有一行一列不涂,不妨枚举这是这一行是哪一行,然后就可以确定出每行每列应该涂什么,再根据每个格子的颜色建一张图来表示行和列之前染色的先后关系,从而判断是否合法。
    • notice
      写完之后发现在各种莫名其妙的地方RE,第二天看了一下发现是tot没有清零。
  • T2

    • description
      国家A的城市和它们之间的通道构成了一棵树,首都在树根,每个城市有一定的卫兵,国家B准备侵略国家A,并先占领了A的所有的叶子节点(即叶子节点没有卫兵),每个被占领的城市从被占领的下一秒开始都会产生一个B国士兵,B国的士兵造出来以后每一秒都会向首都方向移动一个单位距离,每到一个城市都会使那个城市的卫兵数量-1,当卫兵数量为0时城市被占领,士兵到达首都后认为它消失了。求A国被占领的时刻。
    • solution
      维护每个城市的兵第一次到达首都的时间,这样便可以方便地进行二分。
      处理一个点的时候需要合并子树信息,用线段树合并复杂度仅为\(O(n\log maxval)\),splay启发式是\(O(n\log n)\),treap的启发式合并虽然是\(O(n\log^2 n)\),但实际效率也不错。
  • T3
    判断性别什么的神题,不明觉厉。

posted @ 2016-05-22 21:45  Showson  阅读(141)  评论(0编辑  收藏  举报