牛客小白月賽25 I 十字爆破 鄰接表

2021-10-06 06:10:55 字數 2193 閱讀 6212

題目描述

牛牛在玩乙個遊戲:

一共有n行m列共nm個方格,每個方格中有乙個整數。

牛牛選擇乙個方格,可以得到和這個方格同行、同列的所有數之和的得分。

例如:對於乙個22的方格:

1 23 4

牛牛選擇每個方格的得分如下:

6 78 9

因為1+2+3=6,1+2+4=7,1+3+4=8,2+3+4=9。

現在牛牛想知道下一步選擇每個格仔的得分情況,你可以幫幫他嗎?

輸入描述:

第一行有兩個正整數 和 ,代表方格的行數和列數。

接下來的 行,每行有 個數 aija_aij​,代表每個方格中的整數。

輸出描述:

輸出 行 列整數,分別代表選擇每個位置方格的得分情況。

示例1輸入

複製2 2

1 23 4

輸出複製

6 78 9

備註:本題輸入和輸出資料量較大,盡量使用scanf或更快的io方式~

注意到n和m

n和mn和

m的範圍,可能出現1

∗1000000

1*1000000

1∗1000

000所以用vectorarr[1000000]來存矩陣

用陣列r[i

]r[i]

r[i]

表示第 i

ii行的和

c [i

]c[i]

c[i]

表示第i

ii列的和

則,第r行c列的行列和為r[r

]+c[

c]−m

tx[r

][c]

(mtx

[r][

c]加了

兩次所以

要減掉)

r[r]+c[c]-mtx[r][c](mtx[r][c]加了兩次所以要減掉)

r[r]+c

[c]−

mtx[

r][c

](mt

x[r]

[c]加

了兩次所

以要減掉

)

#ifdef debug

#include

#include

"/home/majiao/mb.h"

#endif

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define maxn ((int)1e6+7)

#define ll long long int

#define inf (0x7f7f7f7f)

#pragma gcc optimize(2)

#define qaq (0)

using

namespace std;

#ifdef debug

#define show(x...) \

do while (0)

void

err(

)#endif

template

<

typename t,

typename..

. a>

void

err(t a, a.

.. x)

int n, m, q, k;

//map, int> mp;

//unordered_map, int> mp;

ll r[maxn]

, c[maxn]

;vector<

int> mp[maxn]

;int

main()

for(

int i=

1; i<=n; i++

)printf

("\n");

}#ifdef debug

clock_t etime =

clock()

;printf

("rum time: %lf 秒\n",(

double

)(etime-stime)

/clocks_per_sec)

;#endif

return0;

}

牛客小白月賽25

分情況討論 include using namespace std const int n 2e5 5 typedef long long ll int a n int main void if n x else printf lld n ans return0 用字元陣列來模擬棧 include ...

I 排名 牛客小白月賽3

題目描述 cwbc和xhrlyb都參加了sdoi2018,他們特別關心自己的排名。我們定義每一場比賽每位選手的標準分為它的分數乘以滿分再除以比賽中選手所獲得的最高分。noip2017的滿分為600分,sdoi2018每一天的比賽滿分均為300分。我們定義總分為noip2017的標準分的25 加上sd...

牛客 小白月賽2 I 藝

思路 對a n b n 按開始時間排序,遍歷時間t,對於每個時間區間,取a,b中的價值最大值即可 code a n b n 按照開始時間排序,對於每個區間,只要取其最大價值即可 include includeusing namespace std typedef long long ll struc...