NOIP2013模擬 七夕祭

2021-08-21 10:56:18 字數 1275 閱讀 7270

第一行包含三個整數n和m和t。t表示cl對多少個攤點感興趣。

接下來t行,每行兩個整數x, y,表示cl對處在第x行第y列的攤點感興趣。

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

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

假設滿足每行(列)攤點一樣多,那麼每行該有t/n(t/m)個點。那麼,我們可以由此將row/column/both/impossible判斷出來。設b[i]為第i行該多放多少個點才能到達平均,c[i]則為列。(負數我們也不慫他)很明顯,如果想均分紙牌,呵呵呵。(~那ac離開千里之外,他不再回來~)設 bi 的字首和為 si。如果從第k個位置開始,那麼第i堆和第i+1堆交換的紙牌數就是|si-sk|。總代價就是|s1-sk|+|s2-sk|+|s3-sk|+……+|sn-sk|。(絞盡腦汁冥思苦想ing)

(三年後)啊!!!當k為1~n的中位數時,該式有最小值。。。。。。

那麼我們就可以約掉其中一重迴圈,很好,我會給你乙個獎勵,那就是——ac(別想著gunpla之類的,不存在的)。

#include

#include

#include

#define fk 100001

using namespace std;

long long n,m,t,a,a1,ans,h[fk],l[fk],s[fk],s1[fk],b[fk],c[fk],k;

int i,j;

int main()

for (i=1;i<=n;i++)

sort(s+1,s+n+1);

for (i=1;i<=m;i++)

sort(s1+1,s1+m+1);

if (t%n!=0 && t%m!=0)

if (t%n==0 && t%m!=0)

printf("%s

%lld","row ",ans);

}if (t%n!=0 && t%m==0)

printf("%s

%lld","column ",ans);

}if (t%n==0 && t%m==0)

k=(1+m)/2;

for (i=1;i<=m;i++)

printf("%s

%lld","both ",ans);

}}

NOIP2013模擬 七夕祭

description 七夕節因牛郎織女的傳說而被扣上了 情人節 的帽子。於是tyvj今年舉辦了一次線下七夕祭。vani同學今年成功邀請到了cl同學陪他來共度七夕,於是他們決定去tyvj七夕祭遊玩。tyvj七夕祭和11區的夏祭的形式很像。矩形的祭典會場由n排m列共計n m個攤點組成。雖然攤點種類繁多...

NOIP2013模擬 七夕祭

題目描述輸入 第一行包含三個整數n和m和t。t表示cl對多少個攤點感興趣。接下來t行,每行兩個整數x,y,表示cl對處在第x行第y列的攤點感興趣。輸出 首先輸出乙個字串。如果能滿足vani的全部兩個要求,輸出both 如果通過調整只能使得各行中cl感興趣的攤點數一樣多,輸出row 如果只能使各列中c...

七夕祭 模擬

有乙個會場由 n role presentation style position relative nn排 m role presentation style position relative m m列共計n m role presentation style position relative...