2016-5-25授课(3)

数据结构

  • T1
    http://www.cnblogs.com/showson/p/4496039.html

  • T2

    • description
      给定N个正整数
      对于一个询问\((l,r)\),你需要求出\(\max(A_i\ xor\ A_{i+1}\ xor\ A_{i+2} ... xor\ A_j)\),其中\(l \leqslant i \leqslant j \leqslant r\)
      \(N \leqslant 12000, M \leqslant 6000\)
      强制在线
    • solution
      求前缀和以后即变为求区间里两个数的异或最大值。
      分块维护即可
  • T3 CF163E

    • description
      给你一些串,有串的出现和消失两个操作,动态查询一个串的子串有多少个出现了
    • solution
      在AC自动机的fail树上点修改链询问。
  • T4 [Noi2011]阿狸的打字机

    • solution
      离线之后在AC自动机的fali树上点修改,子树询问。
  • T5 [Sdoi2013]森林

    • solution
      启发式合并+主席树

图论

  • T1 CF274D

    • description
      给你一个\(n \times m\)矩阵,矩阵的每个元素是\(1...9\)或者\(-1\)
      你需要选择一个列的排列,使得矩阵的每行去掉\(-1\)之后是单调非降的
      \(n \times m \leqslant 10^5\)
    • solution
      拓扑排序,需要加入中间点防止边数过多。
  • T2 2016清华校赛 B

    • description
      有一个n*m的未知矩阵R,矩阵的每个元素都是0到k的整数
      有c个约束条件,每个约束条件是以下的一种
      \(1.R(x_1,y_1)+R(x_2,y_2)<S\)
      \(2.R(x_1,y_1)+R(x_2,y_2)>S\)
      其中\(|x_1-x_2|+|y_1-y_2|=1\)
      你需要输出,是否满足所有条件的矩阵,如果有,是否唯一
    • solution
      由于是二分图,所以可以变为差,转化为查分约束系统。
      据说解是否唯一可以通过跑最大解和最小解来判断(跑最长路和最短路)。
  • T3 CF160D

    • description
      给定n个点m条边
      询问每条边属于以下哪种情况
      1.一定在最小生成树上
      2.可能在最小生成树上
      3.一定不在最小生成树上
    • solution1
      在做kruskal的时候考虑一组权值相同的边。
      若一条边两个端点已经在一个联通块,则一定不在最小生成树上。
      否则有可能在,特别的,如果是桥则一定在。
      和bzoj1016的思路基本一致
    • solution2
      先求出最小生成树
      则最小生成树上的边有可能在,不放先假设他们一定,之后再作修正。
      考虑剩下的边,若它加入以后形成的环的最大值小于它,那么一定不在,等于它的话所有等于它的边都应该被标记为可能。
      打标记有两种思路,一种是倍增数组,一种是类似树形dp.
  • T4 SPOJ - COMPANYS

    • description
      给你一个带权无向图,每条边非白即黑,
      现要构造一个生成树使得恰有K条白色的边,使权值和最小
    • solution
      二分无限制的最小生成树和有限制的最小生成树的差,均摊到每个白色的边上。
  • T5 [Sdoi2010]星际竞速
    。。。看错题了,确实是有上下届的费用流

posted @ 2016-05-27 23:02  Showson  阅读(165)  评论(0编辑  收藏  举报