博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2442 Sequence【堆】
阅读量:4582 次
发布时间:2019-06-09

本文共 708 字,大约阅读时间需要 2 分钟。

题目链接:

题目大意:给出一个m*n的矩阵,从每一行中取出一个数相加。能得到n^m个不同的结果。要求输出当中前n项。

建立一个以n元数组为底层数组的堆,在这里,利用stl中的make_heap,pop_heap。push_heap等函数解决。

1.将第一组数据输入arr1数组。升序排序。

2.将接下来的数据输入到arr2数组中。而且heap[i]=arr1[0]+arr2[0...n-1]。make_heap(heap,heap+n).

3.arr1数组从1到n-1,比較temp=arr1[i]+arr2[0...n-1]与堆顶的元素。假设temp比較小,则将堆顶元素pop。加入temp到heap;否则跳出循环。

4.将heap中的元素所有赋值给arr1数组,升序排序。反复2,3两步,直到所有数据所有处理完。

代码:

#include 
#include
#include
#define M 111#define N 2111using namespace std;int arr1[N],arr2[N],heap[N];int m,n;int main(){ int t; bool s=true; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); for(int i=0;i

转载于:https://www.cnblogs.com/jzssuanfa/p/6780385.html

你可能感兴趣的文章
maven项目导入依赖jar包并打包为可运行的jar包
查看>>
leecode第二十三题(合并K个排序链表)
查看>>
关于Eclipse的unsupported major minor version 51.0 错误
查看>>
2014年目标
查看>>
weblogic启动后 登陆控制台特别慢的问题
查看>>
Spring加载resource时classpath*:与classpath:的区别
查看>>
雅虎股票接口
查看>>
映射“DataAdapter.TableMappings”
查看>>
Vue双向绑定
查看>>
activity生命周期
查看>>
IO流
查看>>
动画学习之Music图形绘制
查看>>
2019 2.15模拟赛
查看>>
扩展欧几里得
查看>>
基于H5 pushState实现无跳转页面刷新
查看>>
【Netty】第一个Netty应用
查看>>
OpenSSL中HMAC,MD5以及对称加密算法的应用
查看>>
如何在手机网站上添加百度地图(带搜索功能)
查看>>
js正则表达式应用
查看>>
web基础,用html元素制作web页面
查看>>