csp-s模拟100

T1:
  把字符看作点,单词看作边,那么就是有向图和无向图两种情况
  考虑要使用所有的词,即:经过所有的边
  那么就变成了一个欧拉路的问题
 
T2:
  考虑每次取出一个数会消除它与它后面的所有数构成的逆序对
  且每个数只会消除一次
  那么每次查询后面最小的数取出并减去它造成的影响即可
 
T3:
  毒瘤题
  随机的树我真的是服了
  考虑树随机有什么性质:只有log层左右
  那么log有什么用?可以装压(\(2^{log_2n}=n\))!!!
  发现祖先的情况会影响贡献的计算
  那么我们就将祖先的子树中,点亮的点的数量是否大于等于没有被点亮的点的数量作为状态,进行装压
  在考虑当前点的时候,直接根据祖先情况计算贡献,这里并不用保证状态合法
  当回溯的时候,我们只截取合法的一半传回向上转移即可

posted @ 2019-11-12 14:50  G_keng  阅读(117)  评论(0编辑  收藏  举报