Hash表题目整数hash-HDOJ1425(转载)
哈希表(散列表)的基本原理:使用一个下标范围比较大的数组来存储元素,一般通过设计一个函数(哈希函数,即散列函数),使得每个元素的关键字都与一个函数值(即数组下标)相对应,然后用该数组单元来存储对应元素。
下面介绍用两道题目介绍一下hash表的用法:
题目描述:给你n个整数,请按从大到小的顺序输出其中前m大的数。
 Input
 每组测试数据有两行,第一行有两个数n,m (0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
 Output
 对每组测试数据按从大到小的顺序输出前m大的数。
 这个问题我们可以看到数据量很大而且整数处于[-500000,500000]之间,那么我们就可以用一个大的数组进行hash,然后进行统计。
      #include
      "
      stdio.h
      "
      #include
      "
      memory.h
      "
       
      int
       a[
      ];
      int
       main()
      {
      int
       n,m;
      int
       tmp;
      int
       i;
      int
       count;
      int
       flag
      =
      ;
      while
      (scanf(
      "
      %d%d
      "
      ,
      &
      n,
      &
      m)
      !=
      EOF)
          {
              count
      =
      ;
              memset(a,
      ,
      sizeof
      (a[
      ])
      *
      );
      for
      (i
      =
      ;i
      <
      n;i
      ++
      )
              {
                  scanf(
      "
      %d
      "
      ,
      &
      tmp);
                  a[tmp
      +
      ]
      =
      ;
              }
              flag
      =
      ;
      for
      (i
      =
      ;i
      >=
      ;i
      --
      )
              {
      if
      (a[i]
      !=
      )
                  {
      if
      (
      !
      flag)
                      {
                          printf(
      "
      %d
      "
      ,i
      -
      );
                          flag
      =
      ;
                      }
      else
                      {
                          printf(
      "
       %d
      "
      ,i
      -
      );
                      }
                    count
      ++
      ;
                  }
      if
      (count
      ==
      m)
      break
      ;
              }
              printf(
      "
      \n
      "
      );
          }
      return
      ;
      }
Hash表题目整数hash-HDOJ1425(转载)的更多相关文章
- 海量路由表能够使用HASH表存储吗-HASH查找和TRIE树查找
		千万别! 非常多人这样说,也包括我. Linux内核早就把HASH路由表去掉了.如今就仅仅剩下TRIE了,只是我还是希望就这两种数据结构展开一些形而上的讨论. 1.hash和trie/radix ha ... 
- hdu 1496 Equations hash表
		hdu 1496 Equations hash表 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1496 思路: hash表,将原来\(n^{4}\)降 ... 
- 索引,B+ tree,动态hash表
		数据库课索引部分的学习笔记. 教材: Database System: The Complete Book, Chapter 15 Database System Implementation, Ch ... 
- 经典递归问题:0,1背包问题  kmp  用遗传算法来解背包问题,hash表,位图法搜索,最长公共子序列
		0,1背包问题:我写笔记风格就是想到哪里写哪里,有很多是旧的也没删除,代码内部可能有很多重复的东西,但是保证能运行出最后效果 '''学点高大上的遗传算法''' '''首先是Np问题的定义: npc:多 ... 
- [poj 3349] Snowflake Snow Snowflakes 解题报告 (hash表)
		题目链接:http://poj.org/problem?id=3349 Description You may have heard that no two snowflakes are alike. ... 
- C++ STL hash表用法
		C++ STL unordered_map用法 在C++11中,unordered_map作为一种关联容器,替代了hash_map,unordered_map的底层实现是hash表,所以被称为无序关联 ... 
- hash表的理解
		哈希表 先从数组说起 任何一个程序员,基本上对数组都不会陌生,这个最常用的数据结构,说到它的优点,最明显的就是两点: 简单易用,数组的简易操作甚至让大多数程序员依赖上了它,在资源富足的情况下,我们甚至 ... 
- NGINX(三)HASH表
		前言 nginx的hash表有几种不同的种类, 不过都是以ngx_hash_t为基础的, ngx_hash_t是最普通的hash表, 冲突采用的是链地址法, 不过这里冲突的元素不是一个链表, 而是一个 ... 
- Hash表
		Hash表 Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字 ... 
随机推荐
- 关于material和sharedMaterial的问题
			在unity3d中,Renderer组件有两个属性:material和sharedMaterial,它们都可以用来获取Renderer的材质属性.但是它们之间却又很大的区别,下面通过示例来讲解一下. ... 
- oracle之时间格式的应用
			${,""," and rs.count_date >= '"+start_date+"'||' 00:00:00'")} ${,&q ... 
- DataGrid( 数据表格) 组件[3]
			本节课重点了解 EasyUI 中 DataGrid(数据表格)组件的使用方法,这个组件依赖于Panel(面板).Resizeable(调整大小).LinkButton(按钮).Pageination( ... 
- django: template using & debug
			模板的作用方法有如下三种: blog/views.py: from django.template import loader, Context, Template from django.http ... 
- QT-Demo-Colck-01
			QT += widgets QT += core HEADERS += \ mainwindow.h SOURCES += \ mainwindow.cpp \ main.cpp #ifndef MA ... 
- POJ 1759 Garland(二分+数学递归+坑精度)
			POJ 1759 Garland 这个题wa了27次,忘了用一个数来储存f[n-1],每次由于二分都会改变f[n-1]的值,得到的有的值不精确,直接输出f[n-1]肯定有问题. 这个题用c++交可以 ... 
- Hibernate插入数据效率测试
			硬件配置: 4G内存.CPUi3-2.3 数据库SQL2008 package com.pan.test; import org.hibernate.Session; import org.hiber ... 
- mysql数据修改-DEDE
			update `dede_arctype` set `templist`='{style}/products.htm' where `templist`='{style}/Product.htm' d ... 
- fgets和scanf的区别
			fgets和scanf的区别 1.测试使用scanf的一个例子: #include "stdio.h" #include "string.h" int main ... 
- android Canvas drawText 文字居中
			1首先利用canvas获取画布的宽高, //获取屏幕的宽和高int width = canvas.getWidth();int height = canvas.getHeight(); 2获取文字的宽 ... 
