hdu1280
来源:互联网 发布:淘宝折扣价怎么设置 编辑:程序博客网 时间:2024/06/06 04:34
题目链接:前m大的数
题目大意:给出n个数,两两求和,求m大的和
题目分析:
1、直接sort,780ms
2、hash[a[i]+a[j]]++,i=maxsum,i--,从后往前输出n个
注意:输出格式问题
固定格式
for(int i=0;i<m;i++){ if(i!=0)printf(" "); printf("%d",sum[i]); } printf("\n");
代码一,sort:
#include <stdio.h>#include<algorithm>using namespace std;const int maxn=3000*1500+5;int sum[maxn];int a[3005];bool cmp(int a,int b){ return a>b;}int main(){ //freopen("in.txt","r",stdin); int n,m; while(scanf("%d %d",&n,&m)!=EOF){ for(int i=0;i<n;i++)scanf("%d",&a[i]); int tot=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ sum[tot++]=a[i]+a[j]; } } sort(sum,sum+tot,cmp); for(int i=0;i<m;i++){ if(i!=0)printf(" "); printf("%d",sum[i]); } printf("\n"); } return 0;}
代码2,hash
#include <stdio.h>#include <algorithm>#include <memory.h>using namespace std;int a[3005];int h[10005];bool cmp(int a,int b){ return a>b;}int main(){ //freopen("in.txt","r",stdin); int n,m,Max; while(scanf("%d %d",&n,&m)!=EOF){ Max=-1; memset(h,0,sizeof(h)); for(int i=0;i<n;i++)scanf("%d",&a[i]); int tot=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ h[a[i]+a[j]]++; Max=max(Max,a[i]+a[j]); } } int k=m,i=Max; while(k){ if(h[i]--){ if(k!=m)printf(" "); printf("%d",i); k--; } else i--; } printf("\n"); } return 0;}
0 0
- hdu1280
- hdu1280
- hdu1280
- hdu1280
- hdu1280——hash
- hdu1280简单hash
- hdu1280堆排
- HDU1280整数hash
- hdu1280 水水过
- 前m大的数 hdu1280
- 前m大的数 hdu1280 (hash)
- hdu1280 前m大的数
- HDU1280:前m大的数
- HDU1280 前m大的数
- Hdu1280 - 前m大的数 - 哈希
- hdu1280(比m大的数)---哈希表
- hdu1280前m大的数
- HDU1280- 前m大的数
- 【Maven】Maven初识
- CSS基础之渐变、文本格式化、表格
- wm8960驱动:裸机代码研读
- nodejs express 启动报错:Error: Cannot find module 'xxx'
- 关于使用指针的发散
- hdu1280
- ubuntu 14安装bugzilla流程
- Java编程思想笔记——第七章 复用类
- 编码
- Ceph网络模块(3)——AsyncMessenger代码流程分析
- struts2.5.2的套路
- Servlet接口五种方法介绍
- Protobuf在Unity中的应用
- Linux定时运行命令脚本——crontab