zoukankan      html  css  js  c++  java
  • NOIP模拟 8

    T1

    水题,可是没A,惭愧。

    值得一提的是,虽然我忘了kmp,现场制造的kmp因为缺少针对题目的特判挂了,但是现场制造的kmp板子能过字符串板子题..

    对..把板子改装了...而且改对了!

    1 nx[0]=-1;
    2 for(int i=2,j=-1;i<=len;++i){
    3     while(~j&&ch[j+1]!=ch[i]) j=nx[j];
    4     nx[i]=++j;
    5 }
    View Code

    T2

    也比较水,可是没A,惭愧。

    初始化的时候清零犯了低错,死了。改了,A了。

    记录一个骚操作,仔细品味发现它非常巧妙

    for(register int i=fr[x];i;i=mo[i].pr)
        {
            register int y=mo[i].to;
            if(!dfn[y])
            {
                tarjan(y);
                low[x]=min(low[x],low[y]);
                if(low[y]>=dfn[x]&&dfn[y]<=dfn[n])//后一个条件保证了只在n的祖先处触发
                {
                    son++;
                    if(x!=1||son>1) cut[x]=1;
                }
            }
            else low[x]=min(low[x],dfn[y]);
        }
    View Code

    T3

    做的很痛苦,改的也很痛苦,因为看不懂题解,只好。。

    自主研发:前提:序列抽象为01,枚举断点转化成序列,每个序列把1挪到序列两端可以保证答案不漏

           考虑每个1,它挪到左边代价为左边0的个数,右边代价为右边0的个数

           所以往0多的方向走不如往少的方向走

           一个1,它的哪边0多,在序列上具有单调性

           所以就让它们左边0少的去左边,其余去右边

           分界线就是0的数量的中点(偶数就是两个中间的0之间,奇数就是中间那个0)

    每个断点,O(1)求解,复杂度O(N)

  • 相关阅读:
    Hystrix容错处理
    Elasticsearch基本命令
    Elasticsearch
    IDEA最新破解方式
    ElasticSearch _bulk批量处理报错The bulk request must be terminated by a newline
    Mysql引擎MyISAM和InnoDB的区别
    利用文件建立与删除swap分区
    新的分区----增加与删除swap分区
    增加,删除分区,不重启更新分区表信息
    将/home迁移到一个独立分区(新的硬盘)中
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11246029.html
Copyright © 2011-2022 走看看