SCOI2008 配對 貪心 DP

2021-08-27 18:26:01 字數 944 閱讀 8322

description

你有n 個整數ai和n 個整數bi。你需要把它們配對,即每個ai恰好對應一 個bp[i]。要求所有配對的整數差的絕對值之和盡量小,但不允許兩個相同的數配 對。例如a=,b=,則最優配對方案是5配8, 6配5, 8配7,配對整數 的差的絕對值分別為2, 2, 1,和為5。注意,5配5,6配7,8配8是不允許的,因 為相同的數不許配對。

sample input

33 65

45 10

60 25

sample output

32首先忽略ai!=bj的情況,這種情況將a和b排序一遍直接配就好了。(實在不知道怎麼證就隨便找個資料手玩一下吧)

然後ai=bi,但其實我們也就只能和他前面乙個和後面乙個配對,那你就寫個dp。

#include

#include

#include

using

namespace std;

typedef

long

long ll;

ll _min

(ll x, ll y)

intread()

while

(ch >=

'0'&& ch <=

'9') s = s *

10+ ch -

'0', ch =

getchar()

;return s * f;

}int a[

110000

], b[

110000];

ll f[

110000];

ll cal

(int x,

int y)

intmain()

printf

("%lld\n"

, f[n]);

return0;

}

配對 SCOI2008 動態規劃

題目描述 你有 n 個整數 a i 和 n 個整數 b i 你需要把它們配對,即每個 a i 恰好對應一 個 b i 要求所有配對的整數差的絕對值之和盡量小,但不允許兩個相同的數配對。例如 a b 則最優配對方案是 5 配 8 6 配 5 8 配 7 配對整數的差的絕對值分別為 2,2,1 和為 5...

SCOI2008 著色方案 高維dp

輸入檔案 color.in輸出檔案 color.out簡單對比 時間限制 1 s 記憶體限制 64 mb 題目背景 有n個木塊排成一行,從左到右依次編號為1 n。你有k種顏色的油漆,其中第i 種顏色的油漆足夠塗ci 個木塊。所有油漆剛好足夠塗滿所有木塊,即 c1 c2 ck n。相鄰兩個木塊塗相同色...

SCOI2008 著色方案

time limit 10 sec memory limit 162 mb submit 2228 solved 1353 submit status discuss 有n個木塊排成一行,從左到右依次編號為1 n。你有k種顏色的油漆,其中第i種顏色的油漆足夠塗ci個木塊。所有油漆剛好足夠塗滿所有木塊...