zoukankan      html  css  js  c++  java
  • POJ 3080 Blue Jeans

    //本题爆搜即可......
    //含有一点是要按字典序排序,输出最小值
    //程序写得太麻烦了.....

    code
    #include<iostream>
    using namespace std;

    int sub(char* a,char* b,int n)
    {
        
    int i,j;
        
    for( i=0;i<=60-n;++i)
        {
            
    for( j=0;j<n;++j)
                
    if(a[j]!=b[j+i])
                    
    break;
            
    if(j==n)
                
    return 1;
        }

        
    return 0;
    }
    //是否字串
    int main()
    {
        
    char a[61],b[15][61],temp[61],tag[100];
        
    int i,j,total,n,index,k,t,num,tag1,tag2,tag3;
        cin
    >>total;
        
    while(total--)
        {
            cin
    >>n;
            cin
    >>a;
            
    for(i=0;i<n-1;++i)
                cin
    >>b[i];
            
    for(i=60;i>2;--i)
            {
                index
    =0;
                num
    =0;
                tag3
    =0;
                
    for(j=0;j<=60-i;++j)
                {
                    tag1
    =0;
                    tag2
    =0;
                    
    for(k=0;k<n-1;++k)
                    {
                        
    if(sub(&a[j],b[k],i))
                            ;
                        
    else break;
                    }
                    
    if(k==n-1)
                    {
                        tag3
    =1;//有公共
                        if(tag1==1)
                        {
                            tag2
    =0;
                            
    for(t=0;t<i;++t)
                                
    if(a[j+t]<temp[t])
                                {
                                    tag2
    =1;
                                    
    break;
                                }
                                
    else if(a[j+t]>temp[t])
                                    
    break;
                            
    if(tag2==1)
                                
    for(t=0;t<i;++t)
                                    temp[t]
    =a[j+t];
                        }
                        
    else
                        {
                            tag1
    =1;
                            
    for(t=0;t<i;++t)
                                temp[t]
    =a[j+t];
                        }
                    }

                }
                
                
    if(tag3)
                {
                    num
    =i;
                    i
    =-1;
                    
    break;
                }
            }
            
    if(num==0)
                cout
    <<"no significant commonalities";
            
    for(t=0;t<num;++t)
                cout
    <<temp[t];
            cout
    <<endl;

            
        }
                    

    }

  • 相关阅读:
    波松分酒问题 C++求最优解. Anthony
    Effective STL 条款7 Anthony
    Effective STL 条款16 Anthony
    数据库设计经验之谈[转载]
    C#递归在dropdownlist显示树状
    多域名同主机js转向
    ASP.NET中常用的26个优化性能方法
    域名解析、子域名、cname别名指向、MX记录、泛域名与泛解析、域名绑定、域名转向
    C#数据库递归构造treeview树形结构
    ASP.NET多种方式生成高质量缩略图
  • 原文地址:https://www.cnblogs.com/lvpengms/p/1662756.html
Copyright © 2011-2022 走看看