前m大的数(哈希入门)&&sort
http://acm.hdu.edu.cn/showproblem.php?pid=1280
普通方法(625ms)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int b[*];
int cmp(const void *a,const void *b)
{
return *(int *)b-*(int *)a;
}
int main()
{
int n,m;
int a[];
while(scanf("%d%d",&n,&m)!=EOF)
{
int k=;
for(int i=;i<n;i++)
scanf("%d",&a[i]);
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
b[k++]=a[i]+a[j];
}
qsort(b,k,sizeof(b[]),cmp);
printf("%d",b[]);
for(int i=;i<m;i++)
{
printf(" %d",b[i]); }
printf("\n");
}
return ;
}
哈希(15ms)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int n,m;
int a[],b[];
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(b,,sizeof(b));
for(int i=;i<n;i++)
scanf("%d",&a[i]);
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
b[a[i]+a[j]]++;
}
int flag=;
int l=;
for(int i=;i>=;i--)
{
while(b[i])
{
if(flag==)
{
printf("%d",i);
flag=;
}
else printf(" %d",i);
b[i]--;
l++;
if(l==m) break;
}
if(l==m) break; }
printf("\n");
}
return ;
}
http://acm.hdu.edu.cn/showproblem.php?pid=1425
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 500000
int b[];
int main()
{
int n,m,t;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(b,,sizeof(b));
for(int i=;i<n;i++)
{
scanf("%d",&t);
if(t<)
b[t+N]++;
else b[t+N]++;
}
int flag=;
int l=;
for(int i=;i>=;i--)
{
while(b[i])
{
if(flag==)
{
printf("%d",i-N);
flag=;
}
else printf(" %d",i-N);
b[i]--;
l++;
if(l==m) break;
}
if(l==m) break; }
printf("\n");
}
return ;
}
前m大的数(哈希入门)&&sort的更多相关文章
- hdu 1280 前m大的数 哈希
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- hdu---(1280)前m大的数(计数排序)
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 找出数组前N大的数
这个题也是个比较有名的面试题.当然有很多变种. 题目意思基本是:从一个数据量很大的数组里找前N大的元素.不允许排序. 这个题有两个比较好的思路: 思路一:用快速排序的思想,是思想,不是要排序; 思路二 ...
- HDU 1280 前m大的数
http://acm.hdu.edu.cn/showproblem.php?pid=1280 前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory L ...
- 输出前n大的数(分治)
描述:给定一个数组包含n个元素,统计前m大的数并且把这m个数从大到小输 出. 输入: 第一行包含一个整数n,表示数组的大小.n < 100000.第二行包含n个整数,表示数组的元素,整数之间以一 ...
- 4J - 前m大的数
还记得Gardon给小希布置的那个作业么?(上次比赛的1005)其实小希已经找回了原来的那张数表,现在她想确认一下她的答案是否正确,但是整个的答案是很庞大的表,小希只想让你把答案中最大的M个数告诉她就 ...
- 前m大的数(hdu1280)
前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- 7617:输出前k大的数
7617:输出前k大的数 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小 ...
- 输出前 k 大的数
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小 ...
- 杭电 1280 前m大的数
http://acm.hdu.edu.cn/showproblem.php?pid=1280 前m大的数 Time Limit: 2000/1000 MS (Java/Others) Memor ...
随机推荐
- springbatch---->springbatch的使用(六)
前面的例子step都是线性的流程,这里我们提供一个非线性的流程,也就是根据不同的状态做不同的流程step处理.万一有天悔恨变得太现实太世故太麻木,说不定能从回忆中重拾随兴飞翔. step非线性的流程 ...
- 【Mybatis】Mybatis基本构成
SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口) SqlSessionFactory:依靠工厂来生成SqlSes ...
- Android NDK学习(4)使用cygwin生成.so库文件
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817389.html 简单的示例: makefile文件: LOCAL_PATH: ...
- 游戏AI-行为树
参考: 游戏AI—行为树研究及实现 GAD腾讯游戏开发者平台:游戏中的人工智能AI 腾讯开源项目behaviac 占坑,待编辑
- Tomcat应用的部署记录
1.先安装jdk,解压jdk-7u17-linux-x64.tar.gz至/opt目录.配置环境变量,在/etc/profile末加入如下内容. JAVA_HOME=/opt/jdk1..0_17 e ...
- STS没有找到Dynamic Web Project
解决:安装JavaEE插件 help-> install new software-> 选择sts对应的eclipse版本站点,如eclipse版本4.09选择2018-09.4.10选择 ...
- yii---左查询使用
看到一些做关联查询的示例,例如使用hasMany(一对多),还是有一个hasOne(一对一)的,没有细看,下面是我看到的一个比较好用的一个: $query = (new \yii\db\Query() ...
- quartz 任务时间调度入门使用
这一小节主要是针对cronschedule用法进行讨论,首先讲一下cronschedule基础知识点: 一个cronschedule至少有6个字符(或者7个字符),空格作为间隔,比如 0 * * * ...
- ZH奶酪:JavaScript调用AngularJS的函数/$scope/变量
使用背景: 需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定: 首先获取AngularJS application: 方法一:通过co ...
- 江南OJ 1151 - 还是晒太阳 - [状压DP]
题目链接:校内OJ的题目,就不放链接了. PS.可以说是本次9月月赛唯一的一道有一定难度的题目了. 题解: 考虑状压DP,假设 $sta$ 是一个二进制数,代表当前 $n$ 个人有几个是在队伍里的,剩 ...