環形均分紙牌 七夕祭

2022-05-04 02:03:09 字數 829 閱讀 9875

會場由\(n\times m\)個攤位組成,cl 只對部分商品攤位感興趣,使得所有cl 感興趣的攤位各行各列中的一樣多,調整方式只能交換相鄰攤位,

兩個攤位相鄰當且僅當處於同一行或同一列的相鄰位置,最後一行或列與第一列也是相鄰的,求是否能滿足行列一樣多

如果行列都滿足輸出\(both\),滿足行輸出\(row\),滿足列輸出\(column\),如果都滿足輸出\(both\),都不滿足輸出\(impossible\)

如果能滿足就輸出最多的情況下求最小交換次數

\(\begin1 \leq n, m \leq 100000 \\ 0 \leq t \leq \min (n \times m, 100000) \\ 1 \leq x \leq n \\ 1 \leq y \leq m\end\)

所以可以將行和列分成兩個獨立的來計算

字首和為\(s_-s_, s_- s_, \ldots, s_-s_, s_+s_-s_, \ldots, s_\)

其中\(s_=0\)恆成立,所以就是求乙個\(k\)使得\(\sum_^|s_-s_|\)最小

即環形均分紙牌,對行和列分別進行均分即可,時間複雜度為\(o(n·logn+m·logm)\)

#includeusing namespace std;

#define ll long long

#define rep(i,a,n) for(int i=a;i>1];

rep(i,1,n+1)

ans+=abs(sumr[i]-mid);

}if(column)

printf("%lld\n",ans);

}

藍本刷題 七夕祭(貨倉選址 均分紙牌)

利用已知模型 1 均分紙牌模型 對於大小為n的陣列a,要使其每個陣列中數量相等 保證滿足可以使每個陣列均分為乙個正整數 sum a a n t 方法 從第乙個開始,要從後面拿來 t n a個,即使不足,也可以認為在此之前,a已經操作了從後面拿來,只是前後順序不一樣,不影響結果。所以可以遍歷a i 後...

七夕祭 模擬

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

基本演算法 七夕祭

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