不懂。。
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;
}
分享到:
相关推荐
在竞赛编程中,字符串问题可能涉及到KMP算法、Manacher's Algorithm(曼哈顿算法)或者Rabin-Karp滚动哈希等技术,用于高效地处理字符串的匹配和操作。 4. **动态规划(DP)**:动态规划是一种解决问题的系统方法,...
在HDU OnlineJudge中,题目通常涉及了算法竞赛中常见的问题类型,如图论、动态规划、贪心算法、排序与搜索、字符串处理、数学计算等。解题报告中的每一道题目都提供了详尽的解题思路,旨在帮助参赛者理解和掌握各种...
4. **字符串处理**:如KMP算法、Manacher's Algorithm、后缀数组、Z-Algorithm等,常用于查找模式匹配和文本处理。 5. **数论**:包括最大公约数(GCD)、最小公倍数(LCM)、模逆、线性同余方程、素数判断等。 6. **...
该标题表明了问题的主题是字符串题目记录,可能来自于不同的 OJ 平台,如 POJ、HDU、SPOJ、SGU、HUST 和 FZU 等。 描述:上面可能有 POJ 的题目,HDU 的题目,SPOJ 的题目,SGU 的题目,HUST 上的题目,FZU 上的...
字符串处理是 ACM HDU 题目分类中的一大类,例如,1020 简单的字符串处理;1048 简单字符串处理;1062 简单字符串处理;1073 字符串处理 等等。 其他 除了以上分类外,ACM HDU 题目分类还包括其他一些分类,例如,...
HDU 2082题则是字符串操作的另一种形式,这里的关键是字符串的重组。程序首先读取测试用例的数量,随后对于每个测试用例,读取一个字符串,并将其后半部分与前半部分对调,从而形成一个新的字符串。这样的问题不仅仅...
hdu 5007 Post Robot 字符串枚举。 暴力一下就可以了。
5. **转换为字符串**:将结果数组中的数字转换为字符形式,并存储到最终的字符串数组中。 #### 总结 通过本题的解决过程,我们不仅学会了如何编写高精度加法算法,还了解了如何将其应用到实际问题中。虽然题目提到...
- HDU1403最长公共子串:题目要求找到两个给定字符串的最长公共子串。提供的源代码中使用了后缀数组(Suffix Array)和LCP(Longest Common Prefix)的概念来解决这个问题。后缀数组是所有字符串后缀排序的结果,而LCP...
### Hdu1002:字符串加法 这是一道关于字符串操作和大数加法的题目。由于整型变量可能不足以存储非常大的数字,因此使用字符串来表示大数,通过字符数组进行位运算实现加法。代码中首先将输入的两个字符串转换成...
3. **字符串处理**:String类是Java中处理文本的重要工具,涉及字符串的连接、查找、替换、分割等方法。 4. **输入输出流**:如Scanner类用于从标准输入读取数据,FileReader/Writer用于文件操作,BufferedReader/...
4. **字符串处理**:KMP算法、Manacher's Algorithm、Rabin-Karp算法等。 5. **数学应用**:组合数学、数论(质因数分解、模运算、欧几里得算法等)、概率论等。 6. **编码技巧**:IO优化(如scanf/printf代替cin/...
3. **字符串处理**:杭电ACM中的题目可能涉及到字符串匹配(KMP算法、Boyer-Moore算法)、编码解码、模式查找等问题,熟悉字符串操作是必备技能。 4. **数学应用**:很多ACM题目需要应用到基础数学知识,例如数论...
字符串处理题目如1020、1039等,主要考察选手对于字符串数据类型的理解和操作能力。这包括字符串匹配、分割、合并、排序等常见操作,以及更复杂的模式匹配和正则表达式应用。 综上所述,HDU ACM题目分类覆盖了广泛...
3. **字符串处理**:KMP、Boyer-Moore、Rabin-Karp等字符串匹配算法,以及字符串操作和模式匹配技巧。 4. **数学知识**:组合数学、离散数学、数论等,许多竞赛题目需要运用到这些数学原理。 5. **优化技巧**:...
这些代码可能涵盖了许多算法类型,包括但不限于排序、搜索、动态规划、图论、数学、字符串处理等。 学习这些代码可以帮助你了解不同的编程技巧和算法实现,例如: 1. **排序算法**:快速排序、归并排序、堆排序等...
3. **字符串处理**:字符串匹配(如KMP、Boyer-Moore等)、编码与解码、模式匹配等。在编程竞赛中,字符串问题常常出现,需要掌握一些高效处理字符串的技巧。 4. **数学知识**:组合数学、数论、概率论等。许多编程...
"yfndq2"可能是一个字符串处理或模式匹配的问题,可能用到了KMP、Boyer-Moore等字符串匹配算法。而"flymaidou"可能是涉及数值计算或数学推理的题目,需要理解和应用特定的数学公式或方法。 在学习这些源代码时,...
通过对输入数据的处理,程序能够判断出特定字符串“nogood”是否存在,并据此输出相应的结果。 #### 代码详解 ##### 结构体定义 ```c++ struct zuqiu { char b[108]; }; ``` 在本程序中定义了一个名为`zuqiu`的...
6. **字符串处理**:模式匹配、KMP算法、Manacher's Algorithm等。 7. **模拟法**:直接按照题目描述进行程序模拟,解决一些逻辑性较强的问题。 学习和理解ACM HDU的题解,不仅可以提升编程能力,还能帮助我们理解...