bzoj3032 數論 中位數 七夕祭

2021-08-21 02:04:46 字數 1476 閱讀 3827

description

input

第一行包含三個整數n和m和t。t表示cl對多少個攤點感興趣。   接下來t行,每行兩個整數x,

y,表示cl對處在第x行第y列的攤點感興趣。

output

首先輸出乙個字串。如果能滿足vani的全部兩個要求,輸出both;如果通過調整只能使得各行中cl感興趣的攤點數一樣多,輸出row;如果只能使各列中cl感興趣的攤點數一樣多,輸出column;如果均不能滿足,輸出impossible。

如果輸出的字串不是impossible, 接下來輸出最小交換次數,與字串之間用乙個空格隔開。

sample input

樣例輸入1

2 3 4

1 32 1

2 22 3

樣例輸入2

3 3 3

1 32 2

2 3

sample output

樣例輸出1

row 1

樣例輸出2

both 2

hint

對於100% 的資料,1≤n, m≤100000,0≤t≤min(nm, 100000),1≤x≤n,1≤y≤m。

題解

頹完課內1個月後的我終於來更blog了。。。

(其實只是因為在刷51nod不想更2333

今早看到這題還是想了挺久的。。我怎麼這麼菜

首先你會發現乙個性質,對於兩個挨在一起的相同格仔當然不用交換這tm不是廢話嗎

然後又會有乙個性質

假設我們當前已經調整到行相同了,那麼在調整列相同的時候行的答案是一定不會變的

為啥?畫個圖看看就知道了嘛

於是這就變成了乙個裸的糖果傳遞

把每行看成乙個人,每列看成乙個人,交換行的時候列所擁有的糖果數是不會變的,反之亦然。隨便跑一跑糖果傳遞就沒了

判無解的話判一判能不能整除就好了嘛。。

#include

#include

#include

#include

#include

using namespace std;

typedef long long ll;

int a[110000],n,m,t;

int x[110000],y[110000];

ints[110000];

int main()

else

if(t%n==0 && t%m!=0)//行可以列不可以

else

if(t%m==0 && t%n!=0)//行可以列不可以

else

return

0;}

解題報告 BZOJ3032 七夕祭

ps 話說今天是七夕節,我就正好做到七夕祭 看到這道題的題目,可以想到 均分紙牌 和我之前做的 貨倉選址 兩題,這樣經過思考,演算和推理,我們可以得出,需要的最少步數是 sum limits m left s i s k right 其中s是a的字首和,即 s i sum limits ia j 所...

七夕祭(貪心 中位數)

傳送門 因為交換同一列的相鄰兩行,這一列的總數不變 交換同一行的相鄰兩列,這一行的總數不變。那麼如果可以平均分配的話,可以先將所有行都分配好,然後再將所有列分配好。這樣就變成了做兩次環形紙牌分配問題,給乙個數列,最後一位和第一位相鄰,問能否平均分配,最少需要傳遞多少次。首先考慮普通紙牌均分問題 有 ...

hdu 1215 七夕節(數論)

hdu 七夕節 1215 problem description 七夕節那天,月老來到數字王國,他在城門上貼了一張告示,並且和數字王國的人們說 你們想知道你們的另一半是誰嗎?那就按照告示上的方法去找吧 人們紛紛來到告示前,都想知道誰才是自己的另一半.告示如下 數字n的因子就是所有比n小又能被n整除的...