zoukankan      html  css  js  c++  java
  • 省选模拟二十九 题解

    T1

    考场上只想到了枚举拆三元环,拿到60pts

    发现其实有一个性质没有用到:

    保证将这  个点移除后,剩余的图将不存在环。

    假设黑点为没有被钦定的点,白点反之

    三白的情况无解

    那么一个三元环只能由二黑一白/二白一黑组成,

    后者已经固定了,直接选,而前者并不是很好处理

    首先对黑白点分别求出子图的Top序(由于是竞赛图,所以Top序是严格的)

    接着对于每个黑点处理出它到白点的一个序列(设W->B=1,B->W=0)

    把序列按照白点Top序排序

    考虑什么样的x才是不合法的

    当且仅当存在一个0在1的前面

    所以选择的序列一定是1111111111000000的

    设f[x]代表最小的0的下标,pos[x]代表x的Top序

    那么对于任意两个点x,y(pos[x]<pos[y])

    只有在满足f[x]<=f[y]时他们才能够共存

    求个LIS即可

    T2

    转化一下题意那么问题就是每次新加一个字符求所有的后缀的出现次数

    直接建出SAM后树剖即可

    T3

    轮数的限制有点恶心,问的又不是轮数

    所以考虑枚举位数i(1,2...i-1都已经是0/1了)

    假如a[i]>=2则去操作它

    发现若干轮后变成了a[i+1]++,a[i]--,a[last0]++,a[last0+1]--

    对所有的0维护一个栈

    直接模拟即可

  • 相关阅读:
    阿里十八罗汉、腾讯五虎将、百度七剑客……大佬们是如何找到创始合伙人的?
    子元素margin-top后,跟父元素一起下沉
    css 学习网址
    文字折行不折行 css
    js typeof
    position_css
    springmvc initial初始化
    android MD5 SHA1
    hibernate 三种状态
    Springmvc Exception
  • 原文地址:https://www.cnblogs.com/AthosD/p/12354217.html
Copyright © 2011-2022 走看看