HDOJ-ACM1425 sort 简单hash应用

其实快排也可以通过这个问题~不是考点

没想到考点是这个,简单hash应用,空间换时间

初始化一个长度为1000001的数组(由于数字的范围为[-500000,500000])

如果存在这个数m,数组下标为m的加一

数组从1000000倒计,值为1的输出

很无奈~直接贴别人代码

#include<iostream>
int hash[1000001];
int main(){
    int n,m,temp,cnt;
    while(scanf("%d%d",&n,&m)!=EOF){
          memset(hash,0,sizeof(hash));
          for(int i=0;i<n;i++){
                scanf("%d",&temp);
                hash[temp+500000]=1;
          }
          cnt=0;
          for(int i=1000000;i>=0;i--){
                if(hash[i]==1){
                      if(cnt==m-1){
                             printf("%d\n",i-500000);
                             break;
                      }
                      printf("%d ",i-500000);
                      cnt++;
                }
          }
    }
    return 0;
}
时间: 2024-08-06 09:16:31

HDOJ-ACM1425 sort 简单hash应用的相关文章

POJ2528 Mayor&#39;s posters(线段树成段替换,区间查询,离散化简单hash)

题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报 思路:这题数据范围很大,直接搞超时+超内存,需要离散化: 离散化简单的来说就是只取我们需要的值来 用,比如说区间[1000,2000],[1990,2012] 我们用不到[-∞,999][1001,1989][1991,1999][2001,2011][2013,+∞]这些值,所以我只需要 1000,1990,2000,2012就够了,将其分别映射到0,1,2,3,在于复杂度就大大的降下来了 所以离散化要保存所有需要用到的值,排序后,

SQL Tuning 基础概述06 - 表的连接方式:Nested Loops Join,Merge Sort Join &amp; Hash Join

nested loops join 嵌套循环 merge sort join 排序合并 hash join 哈希连接 nested loops join(嵌套循环)   驱动表返回几条结果集,被驱动表访问多少次,有驱动顺序,无须排序,无任何限制. 驱动表限制条件有索引,被驱动表连接条件有索引. hints:use_nl() merge sort join(排序合并)   驱动表和被驱动表都是最多访问1次,无驱动顺序,需要排序(SORT_AREA_SIZE),连接条件是<>或like导致无法使用

HDU 1880 简单Hash

题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=1880] 中文题面,题意很简单: 题解: 把每个 魔咒 和 对应的功能分别Hash,然后分别映射到map<ULL,string>里面,(魔咒Hash值,对应的功能)和(对应功能Hash值,魔咒). Hash 方式采用最简单的那种Hash即可. #include<bits/stdc++.h> using namespace std; const int maxn = 100 + 15;

HDU 1425 sort (hash)

sort Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 29001    Accepted Submission(s): 8799 Problem Description 给你n个整数,请按从大到小的顺序输出其中前m大的数. Input 每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,

HDU2648(简单hash)

Shopping Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2118    Accepted Submission(s): 706 Problem Description Every girl likes shopping,so does dandelion.Now she finds the shop is increasin

poj 1840 简单hash

http://poj.org/problem?id=1840 Description Consider equations having the following form: a1x13+ a2x23+ a3x33+ a4x43+ a5x53=0 The coefficients are given integers from the interval [-50,50]. It is consider a solution a system (x1, x2, x3, x4, x5) that

shell uniq 和sort 简单用法及实例

以第1域的第二个字符来排序,如果该域只有1个字符则按数字先,字母后的顺序排在够2个字符的正常排序的后面 uniq 中的重复行为连续不段重复的行,如: 1 1 2 2 而sort中-u来实现唯一性的,也就是去除重复行的意义为: 1 1 2 2 和 1 2 3 1 两种 我思考了半天才想通,先排序把相邻的都拍到了一起,然后用uniq去显示邻接的次数 awk '{print $5}' zzz |awk -F \/ '{print $3}' |sort -n |uniq -c 5 gbcd 2 Gbcd

Sort简单排序

List<T> 类型排序: public List<ProductionMaterialModel> OrderBybom(List<ProductionMaterialModel> bommodel, bool prace) { List<ProductionMaterialModel> bomlist = new List<ProductionMaterialModel>(); try { if (bommodel != null &

sort简单用法

-u 去重## 查看文件内容cat test_sort.txt ## sort -u 去重cat test_sort.txt |sort -u----------------------------------------r ,降序排序## 查看文件内容cat test_sort.txt ## sort 默认升序cat test_sort.txt |sort ## sort -r 降序cat test_sort.txt |sort -r------------------------------