博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】1004 Let the Balloon Rise
阅读量:4317 次
发布时间:2019-06-06

本文共 767 字,大约阅读时间需要 2 分钟。

【题目】

【报告】

    按照题目的意思,就是找出出现次数最多的字符串。

    很轻松,可以先排序一下,然后一个个统计,也可以直接HASH。我就是用HASH的。HASH函数的构造可以直接用线性探测再散列,相对来说还是容易的。

【程序】

// TASK: 1004 Let the Balloon Rise

#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <string>
#define N 1000
using namespace std;
string s,ans;
long n,ams;
long h[N+1];
string ha[N+1];
inline void hash(string s)
{
       long q=0;
       for (long i=0;i<s.length();i++)
           q=(q+s[i])%N;
       while (h[q]>0&&ha[q]!=s) q=(q+1)%N;      // 线性探测再散列 
       ha[q]=s;
       h[q]++;
       if (ams<h[q])
       {
          ans=s;ams=h[q];
       }
}
int main(int argc, char *argv[])
{
    while (cin >> n)
    {
          if (n<=0) break;
          ans="";ams=0;
          memset(h,0,sizeof(h));
          for (long i=1;i<=n;i++)
          {
              cin >> s;
              hash(s);
          }
          cout << ans << endl;
    }
    return EXIT_SUCCESS;
}

转载于:https://www.cnblogs.com/klarkxy/archive/2012/08/06/10017155.html

你可能感兴趣的文章
操作文本文件
查看>>
公司项目的几个问题
查看>>
解决win7下打开Excel2007,报“向程序发送命令时出现问题”的错误
查看>>
Velocity快速入门教程
查看>>
Google的小秘密
查看>>
(转)什么是JSON+如何处理JSON字符串
查看>>
(译)理解python线程
查看>>
【总结】动态树
查看>>
【vuejs深入二】vue源码解析之一,基础源码结构和htmlParse解析器
查看>>
编程中的24条经典语录
查看>>
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8 (转)
查看>>
chrome 低版本的background-attachment: fixed问题
查看>>
C++编程思想1
查看>>
如何避免 await/async 地狱
查看>>
POJ 2488 A Knight's Journey-dfs
查看>>
MyBatis 插入时返回刚插入记录的主键值
查看>>
Python基本语法
查看>>
图像处理------颜色梯度变化 (Color Gradient) 分类: ...
查看>>
Hadoop_我理解的Map-Reduce
查看>>
HDU1242 Rescue(BFS+优先队列)
查看>>