题目传送门

取数

题目描述

在一个n行m列的数阵中,你须在每一行取一个数(共n个数),并将它们相加得到一个和。对于给定的数阵,请你输出和前k小的取数方法。

输入输出格式

输入格式:

第一行,三个数n,m,k。

第2~n+1行,每行m个正整数

输出格式:

一行共k个数,代表在每一行取一个数前k小的加和

输入输出样例

输入样例#1: 复制

3 3 2
1 2 3
6 3 5
4 1 2
输出样例#1: 复制

5 6

说明

对于20%的数据,n≤8

对于100%的数据,n≤800,k≤m≤800


  分析:

  WA了无数次,最后发现就是一个取址符号没打。。。。。。真煞笔。。。

  这个蒟蒻真的懒得写了,如果想看思路就参考一下这里吧,蒟蒻就只上代码了。

  Code:

#include<bits/stdc++.h>
using namespace std;
int n,m,k,a[][];
int size,b[],c,cc;
struct Node{
int x,y,num;
}bdg,h[];
inline void Swap(Node &x,Node &y)
{Node temp=x;x=y;y=temp;}
inline void ins(Node x)
{
h[++size]=x;
int ka=size;
while(ka>){
if(h[ka].num<h[ka>>].num){
Swap(h[ka],h[ka>>]);ka>>=;}
else break;}
}
inline void delet()
{
h[]=h[size--];
int ka=,s=ka<<;
while(s<=size){
if(s<size&&h[s+].num<h[s].num)s++;
if(h[s].num<h[ka].num){
Swap(h[s],h[ka]);ka=s;s=ka<<;}
else break;}
}
inline Node get()
{
Node ret=h[];
delet();return ret;
}
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=m;i++)
scanf("%d",&a[c][i]);
sort(a[c]+,a[c]+m+);
for(int j=;j<=n;j++){
cc=-c;size=;
for(int i=;i<=m;i++)
scanf("%d",&b[i]);
sort(b+,b+m+);
bdg.x=;
for(int i=;i<=k;i++){
bdg.y=i;bdg.num=a[c][]+b[i];ins(bdg);}
for(int i=;i<=k;i++){
bdg=get();
a[cc][i]=bdg.num;
bdg.x++;bdg.num=a[c][bdg.x]+b[bdg.y];
ins(bdg);}
c=-c;}
for(int i=;i<=k;i++)
printf("%d ",a[c][i]);
return ;
}

最新文章

  1. Linux:Ubuntu16.04下创建Wifi热点
  2. 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果
  3. centos虚拟机网络配置
  4. hdu 2586 How far away
  5. Mac技巧
  6. 读写锁:ReadWriteLock
  7. bzoj3242
  8. Android中的距离单位
  9. 从gcc的__attribute__((packed))聊到结构体大小的问题
  10. PreparedStatement设置时间
  11. CentOS安装rar及用法
  12. c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便
  13. linux教程之一
  14. 网络资源(3) - iBatis视频
  15. java虚拟机--jvm client模式与server模式的区别
  16. python不使用第三方变量,交换两个变量的值
  17. 蓝桥杯PREV-11:横向打印二叉树
  18. C语言之阶乘
  19. SQL Server2008 安装失败后的解决办法
  20. [物理学与PDEs]第4章第2节 反应流体力学方程组 2.3 混合气体状态方程

热门文章

  1. [LeetCode] 8. String to Integer (atoi) ☆
  2. Sublime Text 3 一些简单使用
  3. 【BZOJ】1229 [USACO2008 Nov]toy 玩具
  4. js_layer弹窗的使用和总结
  5. DTW 算法(转)
  6. 通过call_usermodehelper()在内核态执行用户程序【转】
  7. 5-3 Linux内核计时、延时函数与内核定时器【转】
  8. eComStation 1.2
  9. shell 智能获取历史记录功能
  10. 自动安装jar包到本地仓库