【題意】
ch最近在網上發現乾草買一送一的一筆交易,他每買一捆尺寸為a的乾草,就可以免費獲贈一捆尺寸為 b (1 ≤ b < a)的乾草,注意b < a。
然而,這個買賣是有限制的:需要花錢的乾草都是高質量的,而免費贈送的都是次品。然而節儉的ch並不在意質量:為了省錢他會買任意質量的乾草。
給出n捆高質量的乾草,以及m捆次品乾草,找出ch最多可以買到多少捆乾草。他可以單獨買高質量的乾草而沒有獲贈免費的次品乾草;但是他不能單獨買次品乾草。
【輸入描述】
第1行: 兩個用空格隔開的整數:n和m。
第2行到第n+1行:每行乙個整數,表示一捆高質量乾草的尺寸。
第n+2行到第n+m+1行:每行乙個整數,表示一捆次品乾草的尺寸。
【輸出描述】
唯一一行:乙個整數,表示ch可以買到乾草的最大捆數。
【樣例輸入】
3 4613
1534
【樣例輸出】
5【提示】
樣例說明:
共有3捆高質量的乾草,尺寸分別是6,1,和3; 共有4捆次品乾草,尺寸分別是1,5,3,和4。
顯然,fj可以買到所有高質量的乾草。當他買尺寸為6的高質量乾草時,他可以獲贈尺寸為3的次品。當他買尺寸為3的高質量乾草時,他可以獲贈尺寸為1的次品。然而,當他買質量為1的高質量乾草時,無論如何,他都不可能再獲贈次品乾草。所以答案就是3+2=5。
1 ≤ a ≤ 1,000,000
1 ≤ n ≤ 10,000
1 ≤ m ≤ 10,000
題解:這道題十分水,首先高階稻草我們可以全部買齊,每個低階稻草都要配對乙個離它最近且比他大的稻草才不會浪費,最後加上能派對上高階稻草的低階稻草的個數
**(建議自己打):
#include
#include
#include
using
namespace
std;
int
a[21000],b[21000],n,m;
int
main()
printf
(
"%d\n"
,n+n-ni);
return
0;
}
caioj 1040 搜尋初步
因為按字典序排序 且頭尾相接 可理解成是乙個圈 所以第一位一定是1 prim 判斷素數的函式裡可以加上記憶化 因為函式裡i i x寫成了n debug了很久 邊寫邊輸出除錯比較好 可以定義debug函式 霧 以及 什麼時候要寫一下線性篩呀 includeusing namespace std tem...
NYOJ 房間安排168
房間安排 時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述2010年上海世界博覽會 expo2010 是第41屆世界博覽會。於2010年5月1日至10月31日期間,在中國上海市舉行。本次世博會也是由中國舉辦的首屆世界博覽會。上海世博會以 城市,讓生活更美好 better cit...
NYOJ 房間安排 168
時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述 2010年上海世界博覽會 expo2010 是第41屆世界博覽會。於2010年5月1日至10月31日期間,在中國上海市舉行。本次世博會也是由中國舉辦的首屆世界博覽會。上海世博會以 城市,讓生活更美好 better city,be...