zoukankan      html  css  js  c++  java
  • codeforces 716

    A n个数 m  递增的 如果2个数的差大于m  那么前面的字就会消失 问最后有几个字

    从后往前走一下 

    #include<stdio.h>
    #include<algorithm>
    #include<stdlib.h>
    #include<cstring>
    #include<iostream>
    #include<string>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<map>
    #include<iterator>
    #include<stack>
    
    using namespace std;
    
    #define ll   __int64
    #define MAXN  1010010
    #define inf  2000000007
    #define mod 1000000007
    
    int z[MAXN];
    
    int main()
    {
        int n,k;
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++)
            scanf("%d",&z[i]);
        int cnt=1;
        for(int i=n-1;i>=1;i--)
        {
            if(z[i+1]-z[i]<=k)
                cnt++;
            else
                break;
        }
        printf("%d
    ",cnt);
        return 0;
    }
    View Code

    B 问子串中是否有26个正好是26个字母的

    没有就-1   暴力

    #include<stdio.h>
    #include<algorithm>
    #include<stdlib.h>
    #include<cstring>
    #include<iostream>
    #include<string>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<map>
    #include<iterator>
    #include<stack>
    
    using namespace std;
    
    #define ll   __int64
    #define MAXN  1010010
    #define inf  2000000007
    #define mod 1000000007
    
    char z[MAXN];
    int vis[27];
    
    int main()
    {
        scanf("%s",z);
        int len=strlen(z);
        int ok=0;
        for(int i=0;i<len-25;i++)
        {
            for(int j=0;j<27;j++)
                vis[j]=0;
            for(int j=i;j<i+26;j++)
            {
                if(z[j]!='?')
                 vis[z[j]-'A']++;
            }
            int ok1=0;
            int cnt=0;
            for(int j=0;j<26;j++)
            {
                 if(vis[j]>1)
                    ok1=1;
            }
           // printf("%d ",ok1);
            if(ok1==1)
                continue;
            for(int j=i;j<i+26;j++)
            {
                if(z[j]=='?')
                {
                    int k;
                    for(k=0;k<26;k++)
                        if(vis[k]==0)
                            break;
                    z[j]='A'+k;
                    vis[k]=1;
                }
                ok=1;
            }
            if(ok==1)
                break;
        }
        if(ok==1)
        {
            for(int i=0;i<len;i++)
                if(z[i]=='?')
                    z[i]='A';
        }
            if(ok==1)
                printf("%s",z);
            else
                printf("-1
    ");
        return 0;
    }
    View Code

    C 构造序列

    很烂

    最后   p*n + q*n =  k *k*(n+1)*(n+1)

            k  可以是n   然后一直推上去     难受 

    #include<stdio.h>
    #include<algorithm>
    #include<stdlib.h>
    #include<cstring>
    #include<iostream>
    #include<string>
    #include<cmath>
    #include<vector>
    #include<queue>
    #include<map>
    #include<iterator>
    #include<stack>
    
    using namespace std;
    
    #define ll   __int64
    #define MAXN  1010010
    #define inf  2000000007
    #define mod 1000000007
    
    ll z[MAXN],ans[MAXN];
    
    int main()
    {
        ll n;
        scanf("%I64d",&n);
        ans[1]=2;
        for(ll i=2;i<=n;i++)
            ans[i]=i*(i+1)*(i+1)-(i-1);
        for(int i=1;i<=n;i++)
            printf("%I64d
    ",ans[i]);
    
        return 0;
    }
    View Code
  • 相关阅读:
    14.2.2.4 InnoDB Record, Gap, and Next-Key Locks
    Linux_PXE服务器_RHEL7
    Linux_PXE服务器_RHEL7
    Caused by: java.net.SocketException: Connection reset
    mysql read committed
    Linux_OpenSSH远程连接
    Linux_OpenSSH远程连接
    dns nsswitch.conf
    Python基本语法_强制数据类型转换
    Python基本语法_强制数据类型转换
  • 原文地址:https://www.cnblogs.com/cherryMJY/p/6683102.html
Copyright © 2011-2022 走看看