zoukankan      html  css  js  c++  java
  • 【CodeForces 730H】Delete Them

    BUPT 2017 summer training (for 16) #1E

    题意

    找到匹配要删除的文件名们但不匹配其它文件名们的表达式。其中?匹配所有字符,其它字符匹配本身。

    题解

    如果某个位置出现两个及以上的不同字符,那就要用?。再看是否会匹配其它文件名。注意长度不同一定不匹配。

    代码

    #include <cstdio>
    char w[101][101];
    bool d[101];
    char o[101];
    int n,m;
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;++i)
            scanf("%s",w[i]);
        for(int i=1,t;i<=m;++i)
            scanf("%d",&t),d[t]=true;
        bool ans=true;
        int len=0;
        for(int i=1,j;i<=n;++i)
            if(d[i]){
                for(j=0;w[i][j];++j)
                    if(o[j]&&o[j]!=w[i][j])
                        o[j]='?';
                    else
                        o[j]=w[i][j];
                if(len==0)len=j;
                if(j!=len)ans=false;
            }
        for(int i=1,j;i<=n&&ans;++i)
            if(!d[i]){
                bool dif=false;
                for(j=0;w[i][j];++j)
                if(o[j]!='?'&&w[i][j]!=o[j])
                    dif=true;
                if(!dif&&j==len)ans=false;
            }
        if(ans)printf("Yes
    %s",o);
        else puts("No");
        return 0;
    }
    
  • 相关阅读:
    Java Spring AOP用法
    Spring IOC的简单实现
    随机数
    Java 正则表达式
    日期格式转换
    maven settings.xml详解
    JSP与Servlet的关系
    EL表达式学习
    FreeMarker学习2
    FreeMarker学习
  • 原文地址:https://www.cnblogs.com/flipped/p/7202373.html
Copyright © 2011-2022 走看看