A
来源:互联网 发布:最美的句子知乎 编辑:程序博客网 时间:2024/04/28 15:19
A
Time Limit: 60ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给出n(1<= n && n <= 2*10^6)个字符串,每个字符串只包含小写英文字母,且最多有五个。问这n个字符串中出现次数最多的有多少个。
输入
单组输入。第一行输入一个数字n,接下来n行,每行包含一个字符串。
输出
输出一个数字代表答案。
示例输入
5abaabbwabaz
示例输出
2
提示
来源
示例程序
字典树暂时敲不出来,就只能暴力解决了。
用快排超10ms 果断不用了。
刚做的时候以为用哈希加暴力不靠谱,会超时。没想到优化一下就好了。真是太棒了!!!!!!!
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char a[2000001][6];
int sum[10000000];
/*int cmp(const void *a,const void *b)
{
return *(int*)b - *(int*)a;
}*/
int main()
{
int n,i,j,t;
memset(sum,0,sizeof(sum));
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",&a[i]);
int m,kk = 0;
m = strlen(a[i]);
t = 1;
for(j=0;j<m;j++)
{
kk = kk + a[i][j]*t;
t = t*100;
}
sum[kk]++;
}
//qsort(sum,10000000,sizeof(sum[0]),cmp);
int max = 0;
for(i=0;i<1000000;i++)
{
if(sum[i]>max)
{
max = sum[i];
}
}
printf("%d\n",max);
return 0;
}
#include<string.h>
#include<stdlib.h>
char a[2000001][6];
int sum[10000000];
/*int cmp(const void *a,const void *b)
{
return *(int*)b - *(int*)a;
}*/
int main()
{
int n,i,j,t;
memset(sum,0,sizeof(sum));
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",&a[i]);
int m,kk = 0;
m = strlen(a[i]);
t = 1;
for(j=0;j<m;j++)
{
kk = kk + a[i][j]*t;
t = t*100;
}
sum[kk]++;
}
//qsort(sum,10000000,sizeof(sum[0]),cmp);
int max = 0;
for(i=0;i<1000000;i++)
{
if(sum[i]>max)
{
max = sum[i];
}
}
printf("%d\n",max);
return 0;
}
0 0
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- a
- A
- A*
- a
- A
- a
- STL : std::string可以当UCHAR数组用
- Block高级用法(传值)
- java学习笔记(4)
- 创建你第一个SharePoint 2010 应用程序----完整推荐总结
- jqm视频播放器,html5视频播放器,html5音乐播放器,html5播放器,video开发demo,html5视频播放示例,html5手机视频播放器
- A
- Ruby Regexp using gsub is there an equivalent to self keyword?
- SVN update Failed . Locked
- Beginning Python Chapter 27
- cocos2dx挖掘
- IntelliJ IDEA 代码提示的问题
- 判断大端或小端
- 读mybatis源码之二:构建SqlSession逻辑
- 有用的开源库支持