CodeForces - 898C Phone Numbers STL

http://codeforces.com/problemset/problem/898/C

题意:给出n个人,以及每个人的号码,如果号码a是另一个号码b的后缀,那么a就要被删除。

题解:STL代码实现,具体看代码实现。

代码:

#include
#define debug cout<<"aaa"< > mp;
map >::iterator it;

int main(){
	int n,num,len1,len2;
	string name,temp,a,b;
	bool flag,fflag;
	vector v;
	vector::iterator it1,it2;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>name>>num;
		for(int j=1;j<=num;j++){
			cin>>temp;
			mp[name].pb(temp);
		}
	}
	for(it=mp.begin();it!=mp.end();it++){
		v=it->second;
		for(it1=v.begin();it1!=v.end();){
			a=*it1;len1=a.length();
			fflag=0;
			for(it2=v.begin();it2!=v.end();it2++){
				if(it1==it2) continue;
				b=(*it2);len2=b.length();
				if(len1>len2) continue;
				flag=1;
				for(int k=0;ksecond=v;
	}
	cout<first<<" "<<(it->second).size()<<" ";
		for(int i=0;i<(it->second).size();i++){
			cout<<(it->second)[i]<<" ";
		}
		cout<


你可能感兴趣的:(思维)