2017 多校1

1001:取log10即可

1002:考虑对于每一个字符维护一下一下每一个位置有几个相应字符,按照26进制进位,然后贪心即可

1003:考虑不同的颜色分开讨论,对于一个颜色将原先的树分成若干块,不经过该颜色的方案数为sum{siz*(siz-1)/2},这样考虑对于

该颜色的点按照深度排序从下向上dfs序维护子树点的个数即可。

1006:f(i) = b(f(a(i))) = j,则f(i) = b(b(f(a(a(i))))) = b^2(f(a^2(i))) = b^L(f(a^L(i))) 当a走循环L走到起点时f(i) = b^L(f(i)),

从而f(i)应该选取b排列上循环长度d|L的一个环重复L/d次后作为 f(i) 对应在a排列上的环,O(nlogn) 类似筛法预处理即可

1007:去log后变成子树加问题,注意将两类边放在一起,在dfs序上记L(x),R(x),M(x),然后根据父节点分类讨论对子树的操作。

1008:可以注意到b数组是一个指数级别的数组,a数组完全随机,考虑b数组反过来nth_element即可。

1011:找规律即可

1012:每次找到当前的最小值,按其作为断电左右分治即可。

转载于:https://www.cnblogs.com/lawyer/p/7249827.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值