Uva 11997 多路归并
题目链接:https://uva.onlinejudge.org/external/119/11997.pdf
题意:
k*k的矩阵,从每一行中选一个元素加起来,可以得到 kk个和,求前 k 个最小值。
分析:

先把表头都放到优先队列中,每出一个,就从相应的表后面加一个。
#include <bits/stdc++.h>
using namespace std;
const int maxn = ;
int A[maxn][maxn];
struct Item {
int s,b;
bool operator < (const Item& rhs) const {
return s > rhs.s;
}
};
void merga(int* A,int* B,int* C,int n) {
priority_queue<Item> Q;
for(int i=;i<n;i++) {
Q.push((Item){A[i]+B[],});
}
for(int i=;i<n;i++) {
Item item = Q.top();Q.pop();
C[i] = item.s;
int b = item.b;
if(b+<n) Q.push((Item){item.s-B[b]+B[b+],b+});
}
}
int main(int argc, char** argv) {
int n;
while(scanf("%d",&n)!=EOF) {
for(int i=;i<n;i++) {
for(int j=;j<n;j++) {
scanf("%d",&A[i][j]);
}
sort(A[i],A[i]+n);
}
for(int i=;i<n;i++) {
merga(A[],A[i],A[],n);
}
printf("%d",A[][]);
for(int i=;i<n;i++) {
printf(" %d",A[][i]);
}
puts("");
}
return ;
}
Uva 11997 多路归并的更多相关文章
- uva 11997 K Smallest Sums 优先队列处理多路归并问题
题意:K个数组每组K个值,每次从一组中选一个,共K^k种,问前K个小的. 思路:优先队列处理多路归并,每个状态含有K个元素.详见刘汝佳算法指南. #include<iostream> #i ...
- UVA 11997 K Smallest Sums (多路归并)
从包含k个整数的k个数组中各选一个求和,在所有的和中选最小的k个值. 思路是多路归并,对于两个长度为k的有序表按一定顺序选两个数字组成和,(B表已经有序)会形成n个有序表 A1+B1<=A1+B ...
- UVA 11997 K Smallest Sums 优先队列 多路合并
vjudge 上题目链接:UVA 11997 题意很简单,就是从 k 个数组(每个数组均包含 k 个正整数)中各取出一个整数相加(所以可以得到 kk 个结果),输出前 k 小的和. 这时训练指南上的一 ...
- UVa 11997 K Smallest Sums 优先队列&&打有序表&&归并
UVA - 11997 id=18702" target="_blank" style="color:blue; text-decoration:none&qu ...
- 2021.07.02 UVa1197 多路归并模板
2021.07.02 UVa1197 多路归并模板 UVA11997 K Smallest Sums - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分析: 题解 UVA11997 ...
- UVA - 11997:K Smallest Sums
多路归并 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> ...
- bzoj4165 矩阵 堆维护多路归并
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4165 题解 大概多路归并是最很重要的知识点了吧,近几年考察也挺多的(虽然都是作为签到题的). ...
- POJ1018贪心(多路归并的想法)
题意: 有n个服务器,每个服务器都要安装网线(必须也只能安装一个),然后每个服务器都有mi种选择网线的方式,每种方式两个参数,一个是速度b,另一个是价钱p,然后让你找到一个最大的比值 min ...
- LA3135简单多路归并(优先队列)
题意: 有N个任务,每个任务都有自己的时间间隔(就是每t秒请求执行一次)和任务id,这n个任务公用一个cpu,每次我们都执行时间靠前的,如果相同时间内有多个任务,就执行任务id小的,要求模 ...
随机推荐
- sqlserver 服务器监控
1.表锁 查看被锁的表:select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName from ...
- 省市联动 js
工作中见到这个省市联动代码,虽然很简单也能写出来,还是随便把它记录下来. //省市联动 function area(obj_id, area_pId, data_call_back) { ) retu ...
- servlet3
亿级流量架构 http://www.iteye.com/blogs/subjects/as-core servlet3.1对比 http://jinnianshilongnian.iteye.com/ ...
- /proc下重要路径知识
/proc 虚拟目录,是内存的映射,内核与进程的虚拟文件系统目录/proc/version 内核版本/proc/sys/kernel 系统内核功能/proc/sys/net/ipv4*/proc/cp ...
- Jupyter 环境配置
1. 找到python文件目录, 用管理员身份打开powershell python -m pip install jupyter 2. Jupyter notebook
- 在Mac上安装mysql
进入这个网站: https://dev.mysql.com/downloads/mysql/ 然后点击安装就行了. 注意在这里启动mysql 然后mac上所有的mysql命令都得用绝对路径才能生效
- JS判断所有IE浏览器所有版本
原来判断IE浏览器版本很简单,但是随着版本的升级,navigator.userAgent显示的信息也不一样:下图是IE11显示的信息
- 吞吐率(Requests per second),缩写RPS
计算公式: 吞吐率 = 总请求数 / 处理这些请求的总完成时间 Requests per second = Complete requests / Time taken for tests 吞 ...
- python 矢量化的字符串
- 电感的Q值
电感的Q值又称为品质因数,即在通过一定频率信号时,感抗与等效损耗之比.品质因数越高即系统损耗越小效率越高,一般为50`100,最高500左右,再大就会烧毁.一般Q值与很多因素有关:绕线粗细,长度与直径 ...