zoukankan      html  css  js  c++  java
  • 2017中南大学暑期集训day1 : debug&STL-A

    A - Surprising Strings

    题意就是给你一个字符串,例如ZGBG,有一种称谓叫D-unique

    这个字符串 在D=0时, 有三个子串 ZG GB BG,因为这三个都不同,也就是unique,所以ZGGB是 0-unique;

    同理               D=1时,有两个子串ZB GG也是不同,所以ZGGB是 1-unique;

                          D=2时,只有一个子串ZG,独一无二,所以ZGGB是 2-unique;

    ince these three pairs are all different,Thus ZGBG is surprising.因为这三个都是独一无二的,所以满足题目要求;

    用map建立每个子串与数字的联系来统计,很方便。

     
     
    #include<iostream>//暴力
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<vector>
    const int mod=100007;
    using namespace std;
    char s[100];
    int ans(){
        int l,d,i,j;
        l=strlen(s);
        if(l<3)
            return 1;
        d=1;
        while(d<l){
            for(i=0;i<l-d;i++){
                for(j=i+1;j<l-d;j++){
                    if(s[i]==s[j]&&s[i+d]==s[j+d])
                        return 0;
                }
            }
            d++;
        }
        return 1;
    }
    int main(){
        while(scanf("%s",s)){
        if(s[0]=='*')
            return 0;
        if(ans())
            printf("%s is surprising.
    ");
        else
            printf("%s is NOT surprising.
    ");
        }
        return 0;
    }
    

      

    #include<iostream>
    #include<string>
    #include<map>
    #include<cstdio>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    const int kMaxn(2007);
    
    int main()
    {
    
        char str[10005],pair[3];
        map<string,int> r;
        while(scanf("%s",str) != EOF)
        {
            if(str[0] == '*')
            break;
            int leap,i,len,j;
            len = strlen(str);
            for(i = 0;i < len;i++)
            {
                leap = 1;
                r.clear();
                for(j = 0;j < len-i-1;j++)
                {
                    pair[0] = str[j];
                    pair[1] = str[j+i+1];
                    pair[2] = '';
                    r[pair]++;
                    if(r[pair] > 1)
                    leap = 0;
                }
                if(leap == 0)
                break;
            }
            if(leap)
            printf("%s is surprising.
    ",str);
            else
            printf("%s is NOT surprising.
    ",str);
        }
    
        return 0;
    }
    

      

  • 相关阅读:
    【Hive】HiveQL:数据定义
    【Hive】Hive安装与配置
    【Hadoop】Hadoop 2.7.6安装_伪分布式集群
    【RMAN】单实例环境RMAN备份和还原
    【SQL开发】Oracle 11g 分区技术
    【SQL开发】使用绑定变量 VS 不使用绑定变量
    MySQL索引最左前缀原则导致系统瘫痪
    阿里云RDS在线DDL工具gh-ost
    centos7下MongoDB3.4安装并解决告警
    ibtmp1文件过大
  • 原文地址:https://www.cnblogs.com/Roni-i/p/7233811.html
Copyright © 2011-2022 走看看