HDU2698+字符串

来源:互联网 发布:淘宝加盟被骗了有合同 编辑:程序博客网 时间:2024/06/16 13:32

不懂。。

sort位置不同就是不同的结果。。。

/*字符串处理*/#include<stdio.h>#include<string>#include<string.h>#include<stdlib.h>#include<algorithm>#include<iostream>#include<queue>#include<map>#include<stack>#include<set>#include<math.h>using namespace std;typedef long long int64;//typedef __int64 int64;typedef pair<int64,int64> PII;#define MP(a,b) make_pair((a),(b)) const int maxn = 115;const int inf = 0x7fffffff;const double pi=acos(-1.0);const double eps = 1e-8;struct Node{char s[ maxn ];int cnt;}a[ maxn ],q[ maxn ];int Find( char s[],int n ){for( int i=1;i<n;i++ ){if( strcmp( s,a[i].s)==0 ) return i;}return -1;}bool cmp( Node a,Node b ){if( a.cnt!=b.cnt ) return a.cnt>b.cnt;else {if( strcmp( a.s,b.s )<=0 ) return true;else return false;}}int main(){int T;scanf("%d",&T);while( T-- ){int n;scanf("%d",&n);//init();char ID[ maxn ],Web[ maxn ];//char L[ maxn ];//char R[ maxn ];int Cnt = 1;//统计不同的网址int cc;while( n-- ){scanf("%s%s",ID,Web);//cin>>ID>>Web;cc = Find( Web,Cnt );if( ID[0]=='V' ){if( cc==-1 ){strcpy( a[Cnt].s,Web );a[ Cnt ].cnt = 1;Cnt++;//printf("Add success\n");}else{a[ cc ].cnt++;}}else{//sort( a+1,a+1+Cnt,cmp );//memset( L,'\0',sizeof( L ) );//memset( R,'\0',sizeof( R ) );int pp = 0;for( int k=1;k<Cnt;k++ ){bool f = false;for( int i=0;Web[i]!='\0';i++ ){if( Web[i]!=a[k].s[i] ){f = true;break;}}if( f==false ){ //printf("%s\n",a[k].s);q[ pp++ ] = a[ k ];}}sort( q,q+pp,cmp );for( int i=0;i<pp;i++ ){printf("%s\n",q[i].s);}printf("\n");}}}return 0;}



原创粉丝点击