洛谷P1392 取數 堆

2022-04-30 10:00:07 字數 1024 閱讀 7015

題目傳送門

在乙個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:

#includeusing

namespace

std;

int n,m,k,a[2][807

];int size,b[807

],c,cc;

struct

nodebdg,h[

50007

];inline

void swap(node &x,node &y)

inline

void

ins(node x)

else

break;}}

inline

void

delet()

else

break;}}

inline node

get()

intmain()

for(int i=1;i<=k;i++)

c=1-c;}

for(int i=1;i<=k;i++)

printf(

"%d

",a[c][i]);

return0;

}

洛谷 P1392 取數

題面 在做這道題前,先要會他的弱化版 實際一模一樣,只是愚蠢的洛谷評測級別差了一檔 睿智如姬無夜 弱化版 弱化版 實際只是把矩陣行數改成兩行而已 sol 先排序,後考慮乙個序列a 1 b 1 a 2 b 1 a 3 b 1 a n 1 b 1 a n b 1 顯然對於上乙個序列而言 a 1 b 1 ...

洛谷 p1123取數遊戲

定義乙個dfs函式,函式有三個變數,分別是i,j,sum。i,j分別代表訪問的這個點的座標,sum表示這條路徑上的數字的和。思路是 從 1,1 這個點進入,依次以先列數增加,然後行數增加在訪問所有的點。如下 include include include using namespace std in...

洛谷 P1123 取數遊戲

洛谷傳送門 乙個n times mn m的由非負整數構成的數字矩陣,你需要在其中取出若干個數字,使得取出的任意兩個數字不相鄰 若乙個數字在另外乙個數字相鄰88個格仔中的乙個即認為這兩個數字相鄰 求取出數字和最大是多少。第1行有乙個正整數tt,表示了有tt組資料。對於每一組資料,第一行有兩個正整數nn...