orz5-1 match
給出2個序列a=,b=,從a、b中各選出k個元素進行一一配對(可以不按照原來在序列中的順序),並使得所有配對元素差的絕對值之和最大。
例如各選出了a[p[1]],a[p[2]],……,a[p[k]]與b[q[1]],b[q[2]],……,b[q[k]],其中p序列中的元素兩兩不相同,q序列中的元素兩兩不相同,那麼答案為|a[p[1]]-b[q[1]]|+|a[p[2]]-b[q[2]]|+……+|a[p[k]]-b[q[k]]|,現在任務也就是最大化這個答案。
輸入的第1行為2個正整數n,k,表示了序列的長度和各要選出元素的個數。
第2行包含n個正整數,描述了a序列。
第3行包含n個正整數,描述了b序列。
輸出僅包括乙個非負整數,為最大的結果。
注意:答案可能超過2^31-1,請使用int64或者long long(若使用printf輸出請用「%i64d」)型別儲存結果。
4 2
2 5 6 3
1 4 6 7
10
對於10%的資料,有k≤5,n≤10;
對於30%的資料,有n≤100;
對於50%的資料,有n≤1000;
對於100%的資料,有k≤n≤100000;a[i],b[i]≤1000000。
時限1s。
配對(2,7)、(6,1)結果為|2-7|+|6-1|=10。
看來貪心只適合高智商人玩兒,,
╮(╯▽╰)╭,
別哭,哭什麼啊。。
不好看了都。。
題目你!
說什麼i64d!!!
明明是lld!!!
打死你!
mmp!
看**吧,典型的貪心,看看就明白了。:
#include#include如果你不開心,那我就把右邊#include
#include
#include
#include
using
namespace
std;
intn,k;
long
long
ans;
int a[100002],b[100002
];long
long abss(long
long x,long
long
y)int
main()
else
}printf(
"%lld
",ans);
return0;
}
這個帥傻子分享給你吧,
你看,他這麼好看,那麼深情的望著你,你還傷心嗎?
真的!這**盯上他五秒鐘就想笑了。
一切都會過去的。
C 數字配對 (網路流 最大費用最大流)
題目大意 中文題目 具體思路 用網路流的思想,我們求得是最大的匹配數,那麼我們按照二分圖的形式去建邊就可以了,加上超級源點和超級匯點,就可以用網路流跑了。建邊的時候,我們首先把每個數進行素因子分解,看一下當前的這個數能夠被分解成多少個素數,奇數個的放在乙個陣列裡,偶數個的放在另乙個陣列裡面 如果兩個...
正向最大匹配 和逆向最大匹配對比比較
下面介紹的分詞演算法中最簡單的正向最大匹配和反向最大匹配。這種兩種方法都是機械分詞方法,它是按照一定的策略將待分析的漢字串與乙個 充分大的 機器詞典中的詞條進行配,若在詞典中找到某個字串,則匹配成功 識別出乙個詞 按照掃瞄方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配 按照不同長度優先匹配的情...
BZOJ4205 卡牌配對 最大流
現在有一種卡牌遊戲,每張卡牌上有三個屬性值 a,b,c。把卡牌分為x,y兩類,分別有n1,n2張。兩張卡牌能夠配對,當且僅當,存在至多一項屬性值使得兩張卡牌該項屬性值互質,且兩張卡牌類別不同。比如一張x類卡牌屬性值分別是225,233,101,一張y類卡牌屬性值分別為115,466,99。那麼這兩張...