hd phone lists




这道题也是比较灵活的,比赛中没做出来,我一直用直白的模拟n^2的方法.队友用了字典树可以是超时了.后来回到寝室后队友提交了一下居然险过了,我问了剑哥,原来是很简单的方法.可我们当时就是没想到...看来以后一定要冷静.

 
#include < iostream >
#include 
< string >
#include 
< algorithm >
using   namespace  std;
string  a[ 10001 ];
int  n;
int  main()
{
    
int t;
    
int i, j, k;
    cin 
>> t;
    
while (t--)
    
{
        cin 
>> n;
        
for (i=0; i<n; ++i)
        
{
            cin 
>> a[i];
        }

        sort(a, a
+n);
        
for (i=0; i<n-1++i)
        
{
            
if(a[i] == a[i+1].substr(0,a[i].size()))
                
break;
        }

        
if(i >= n-1)
            cout 
<< "YES";
        
else
            cout 
<< "NO";
        cout 
<< endl;
    }

    
return 0;
}

你可能感兴趣的:(hd phone lists)