博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[UVA 11997] K Smallest Sums
阅读量:4583 次
发布时间:2019-06-09

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

图片加载可能有点慢,请跳过题面先看题解,谢谢

1196604-20171017201901396-1598246053.png
1196604-20171017201905834-1002574892.png

我们先考虑两个序列的情况(以下这一段蒯自 刘汝佳训练指南):

这个问题可以转换成一个多路归并问题,有这样一个含有 \(n^2\) 个元素的表:

  1. \(A[1]+B[1]\leq A[1]+B[2]\leq A[1]+B[3]\leq\) ...
  2. \(A[2]+B[1]\leq A[2]+B[2]\leq A[2]+B[3]\leq\) ...
  3. \(A[3]+B[1]\leq A[3]+B[2]\leq A[3]+B[3]\leq\) ...
  4. ......

这里用优先队列维护一个二元组 \((s,b)\) ,其中,\(s=A[a]+B[b]\)\(s\) 最小的放堆顶

每次从堆中取出一个 \((s,b)\) 后,将 \((s',b+1)\) 丢入堆中,直到取出了 \(n\) 个最小值
但是我们在维护 \((s,b)\) 这个二元组时并没有记录 \(a\) 的值,那则么样才能得到 \((s',b+1)\)
很简单, \(s'=s-B[b]+B[b+1]\),根本不需要知道 \(a\)
$
$
这道题将上面那个两个序列的情况进行了推广
其实就相当于每次拿一个序列去跟 \(A序列\) 进行上面那个操作,然后用答案覆盖 \(A\),直到所有序列都操作过一次

//made by Hero_of_Someone#include
#include
#include
#include
#include
#define il inline#define RG registerusing namespace std;il int gi(){ RG int x=0,q=1; RG char ch=getchar(); while( ( ch<'0' || ch>'9' ) && ch!='-' ) ch=getchar(); if( ch=='-' ) q=-1,ch=getchar(); while(ch>='0' && ch<='9') x=x*10+ch-48,ch=getchar(); return q*x; }int n,a[1010][1010];struct node{int s,x; il bool operator<(const node &c)const{return s>c.s;}};priority_queue
q;il void init(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) a[i][j]=gi(); sort(a[i]+1,a[i]+n+1); }}il void work(){ for(int i=2;i<=n;i++){ for(int j=1;j<=n;j++) q.push((node){a[1][j]+a[i][1],1}); for(int j=1;j<=n;j++){ node x=q.top(); q.pop(); a[1][j]=x.s; int b=x.x; if(b

转载于:https://www.cnblogs.com/Hero-of-someone/p/7683794.html

你可能感兴趣的文章
在C++中调用DLL中的函数
查看>>
leetcode 32. Longest Valid Parentheses
查看>>
OpenSSL创建私有CA
查看>>
CSS3画腾讯QQ图标 无图片和js参考
查看>>
C#使用Emit生成构造函数和属性
查看>>
python pip源配置,pip配置文件存放位置
查看>>
[数据库]关于MAX()函数的一个坑
查看>>
实现前后滚动效果-axure设计实例
查看>>
windows下mysql忘记root密码--吐血测试,都是泪
查看>>
lnmp集成开发环境安装pdo_dblib扩展
查看>>
linux web.py spawn-fcgi web.py 配置
查看>>
lintcode : 空格替换
查看>>
lintcode 中等题:subsets II 带重复元素的子集
查看>>
【原创】Linux基础之测试域名IP端口连通性
查看>>
webstorm快捷键大全
查看>>
SQL Server 语法大全
查看>>
MySQL存储过程
查看>>
HttpContext是干什么的
查看>>
线程安全
查看>>
原形模式
查看>>