HDU1425-sort

sort

水题的水解与不水解法对比

顿时无语   水解——----->

                   hash表------->

// File Name: hdu1425.cpp
// Author: rudolf
// Created Time: 2013年04月22日 星期一 16时53分10秒

#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cstdio>
using namespace std;
const int maxn=1000005;
int num[maxn];
int  cmp(const void *a,const void *b)
{
	return *(int *)b-*(int *)a;
}
int main()
{
	int m,n;
	while(scanf("%d%d",&m,&n)!=EOF)
	{
		for(int i=0;i<m;i++)
			scanf("%d",&num[i]);
		qsort(num,m,sizeof(num[0]),cmp);
		for(int i=0;i<n-1;i++)
		{
			printf("%d ",num[i]);
		}
		printf("%d\n",num[n-1]);
	}
return 0;
}




// File Name: hdu1425hashbiao.cpp
// Author: rudolf
// Created Time: 2013年04月22日 星期一 18时13分10秒

#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>

using namespace std;
const int maxn=1000001;
bool hash[maxn];
inline bool scan_d(int &num)
{
	char in;
	bool ASD=false;
	in=getchar();
	if(in==EOF)
		return false;
	while(in!='-'&&(in<'0'||in>'9'))
		in=getchar();
	if(in=='-')
	{
		ASD=true;
		num=0;
	}
	else
		num=in-'0';
	while(in=getchar(),in>='0'&&in<='9')
	{
		num*=10;
		num+=in-'0';
	}
	if(ASD)
		num=-num;
	return true;
}
int main()
{
	int n,m,i,x,k;
	while(cin>>n>>m)
	{
		memset(hash,false,sizeof(hash));
		for(i=0;i<n;i++)
		{
			scan_d(x);
			hash[x+500000]=true;
		}
		k=0;
		for(i=maxn-1;k!=m;i--)
		{
			if(hash[i])
			{
				if(k++)
					cout<<" ";
				cout<<i-500000;
			}
		}
		cout<<endl;
	}
return 0;
}


你可能感兴趣的:(数据结构,C++,hash,学习笔记,杭电)