• EZ 2018 1 21 2018noip第五次膜你赛


      这次分数普遍偏高,而且yu'ben'ao又AK了!

      但是最后一题莫名爆0让我很感伤啊(搓了1个多小时的20分暴力)!

      难度偏低,主要是T2没剪枝,炸了3个点。

      T1 这种SB题恐怕是千年难遇了,PJ------------的难度

      稍微观察一下就能发现ans=max{a[i]+i-1}

      缅怀yekehe60分

      CODE

    #include<cstdio>
    using namespace std;
    int n,ans=-1,i,x;
    inline void read(int &x)
    {
        x=0; char ch=getchar();
        while (ch<'0'||ch>'9') ch=getchar();
        while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    }
    inline int max(int a,int b)
    {
        return a>b?a:b;
    }
    int main()
    {
        freopen("energy.in","r",stdin); freopen("energy.out","w",stdout);
        read(n);
        for (i=1;i<=n;++i)
        read(x),ans=max(ans,x+i-1);
        printf("%d",ans);
        return 0;
    }

      T2 智障搜索题,我为了卡时间还加上了一堆诸如clock之类的东西,然后果然超时了

      主要是要把两个数列同时开始搜,不能先搜一个再去判断另一个是否可行

      CODE

    #include<cstdio>
    using namespace std;
    const int N=45;
    int a[N],b[N],s[N],t,n,i;
    bool flag;
    inline void read(int &x)
    {
        x=0; char ch=getchar(); 
        while (ch<'0'||ch>'9') ch=getchar(); 
        while (ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    }
    inline void DFS(int k,int len1,int len2)
    {
        if (k>n) { flag=1; return; }
        if (len1>n/2||len2>n/2) return;
        if (s[k]==a[len2+1])
        {
            b[len2+1]=s[k];
            DFS(k+1,len1,len2+1);
        } 
        a[len1+1]=s[k];
        DFS(k+1,len1+1,len2);
    }
    int main()
    {
        freopen("split.in","r",stdin); freopen("split.out","w",stdout);
        read(t);
        while (t--)
        {
            read(n);
            for (i=1;i<=n;++i)
            read(s[i]);
            a[1]=s[1]; flag=0;
            DFS(2,1,0);
            if (flag) puts("Frederica Bernkastel"); else puts("Furude Rika");
        }
        return 0;
    }

      T3 标算太难,已超出能力范围(233333)

      但是我们要有信仰的去——打爆力

      循环更新原串直到得到只含有0~9的串,暴力枚举子串统计答案,20分到手

      CODE

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int n,r,k,i,j,ans,add[30],tot;
    string s,now,a[30];
    inline int calc(int x,int y)
    {
        if (x!=y&&s[x]=='0') return 0;
        int m=0;
        for (int i=x;i<=y;++i)
        m=(m*10+s[i]-'0')%n;
        if (!m) return 1;
        return 0;
    }
    int main()
    {
        freopen("message.in","r",stdin); freopen("message.out","w",stdout);
        cin>>n>>r>>k;
        for (i=1;i<=k;++i)
        cin>>a[i],a[i].erase(0,3);
        s=a[1];
        for (i=2;i<=k;++i)
        {
            memset(add,0,sizeof(add)); tot=0;
            for (j=0;j<s.size();++j)
            if (s[j]=='A'+i-1) add[++tot]=j;
            for (j=1;j<=tot;++j)
            s.erase(add[j]+(j-1)*(a[i].size()-1),1),s.insert(add[j]+(j-1)*(a[i].size()-1),a[i]);
        }
        for (i=0;i<s.size();++i)
        for (j=i;j<s.size();++j)
        ans=ans+calc(i,j)==r?0:ans+calc(i,j);
        printf("%d",ans);
    }
  • 相关阅读:
    Gym
    [APIO2014] 回文串
    python选课系统
    python面向对象之类成员修饰符
    python面向对象之类成员
    python的shelve模块
    python的re模块
    python的configparser模块
    python的sys和os模块
    python的hashlib模块
  • 原文地址:https://www.cnblogs.com/cjjsb/p/8466292.html
Copyright © 2020-2023  润新知