• NOIP 模拟 7 考试总结


    T1

    超级大水题,用 (kmp)(hash) 均能过,但都忘了,结果只打了个暴力。难受。板子题,题解就不放了

    Code
    #include<bits/stdc++.h>
    #define ri register int
    #define p(i) ++i
    using namespace std;
    namespace IO{
        char buf[1<<21],*p1=buf,*p2=buf;
        #define gc() p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++
        inline int read() {
            ri x=0,f=1;char ch=getchar();
            while(ch<'0'||ch>'9') {if (ch=='-') f=-1;ch=getchar();}
            while(ch>='0'&&ch<='9') {x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
            return x*f; 
        }
    }
    using IO::read;
    namespace nanfeng{
        #define cmax(x,y) ((x)>(y)?(x):(y))
        #define cmin(x,y) ((x)>(y)?(y):(x))
        #define FI FILE *IN
        #define FO FILE *OUT
        typedef unsigned long long ull;
        static const int N=1e5+7;
        static const ull P=131;
        char a[N<<1],b[N];
        int st[N],cnt,T,la,lb,ans;
        ull ah[N],bh[N],p[N];
        inline int check(int x) {
            if (ah[x]==bh[lb]-bh[lb-x]*p[x]) return 1;
            return 0;
        }
        inline void init() {cnt=0;ans=0;}
        inline int main() {
            // FI=freopen("nanfeng.in","r",stdin);
            // FO=freopen("nanfeng.out","w",stdout);
            T=read();
            p[0]=1;
            for (ri i(1);i<=N-5;p(i)) p[i]=p[i-1]*P;
            for (ri z(1);z<=T;p(z)) {
                init();
                la=read(),lb=read();
                scanf("%s",a+1);
                scanf("%s",b+lb+1);
                for (ri i(1);i<=lb;p(i)) {
                    if (i<=la&&a[i]==b[lb+1]) st[p(cnt)]=i; 
                    b[i]=a[i];
                    bh[i]=ah[i]=ah[i-1]*P+(ull)(a[i]);
                }
                lb+=1;
                if (lb<=la&&a[lb]==b[lb]) {printf("%d
    ",ans=lb);continue;}
                bh[lb]=bh[lb-1]*P+(ull)(b[lb]);
                for (ri i(cnt);i;--i) if (check(st[i])) {ans=st[i];break;}
                printf("%d
    ",ans);
            }
            return 0;
        }
    }
    int main() {return nanfeng::main();}
    

    T2

    一道 (tarjan) 缩点的题,结果光求了割点,没缩,还乐呵了半天

    题解

    T3

    一道很好的利用单调性的题,可以通过维护一个单调指针,答案递推而得

    题解

  • 相关阅读:
    取消PHPCMS V9后台新版本升级提示信息
    phpcmsv9全站搜索,不限模型
    jq瀑布流代码
    phpcms v9模版调用代码
    angular.js添加自定义服务依赖项方法
    angular多页面切换传递参数
    angular路由最基本的实例---简单易懂
    作用域事件传播
    利用angular控制元素的显示和隐藏
    利用angular给节点添加样式
  • 原文地址:https://www.cnblogs.com/nanfeng-blog/p/14877532.html
Copyright © 2020-2023  润新知