剛開始看到這題就確定這題最好先要排序
第乙個想法是排好序後先讓第乙個和從倒數第乙個開始相加和如果就 <= w,那麼用n除以2或者再加一得出答案,然後發現隨便
當w = 110 n = 5序列為 10 50 60 90 100便不成立,遂將其捨棄。
第二個想法:依舊是從前面和倒數往前的相加,如果大於w,那麼就代表這個後面的肯定會自成一組,因為當前面的再進一位,肯定
要比之前的一位還要大,由此得出。
如果前面加後面的和小於w, 那麼計數器會+1, 然後前面往後進一位,後面的往前進一位。
只存在①:前面的向後進 後面往前面進
②:後面的向前面進 前面不動
而不存在前面的往後面進後面的不動的情況。
需要注意的是:用過的資料需要標記一下,這樣能夠保證用過的資料不會再被使用,
我是標記從前往後的資料。
所以就由這兩種情況得出**,**如下:
1 #include 2 #include 3using
namespace
std;
4bool vis[30005];5
int a[30005];6
intmain()
16if(a[i] + a[n - j] <=w)else
23 j++;24}
25 printf("
%d\n
",cnt);
26return0;
27 }
洛谷P1094 紀念品分組
元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得 的紀念品價值相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整數。為了保證在盡量短的時間內發完所有紀念品,樂樂希望分組的數目最少。你的任務是寫乙個程式...
洛谷 P1094 紀念品分組
元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得 的紀念品價值相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整數。為了保證在盡量短的時間內發完所有紀念品,樂樂希望分組的數目最少。你的任務是寫乙個程式...
洛谷 P1094 紀念品分組
元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得 的紀念品價值相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整數。為了保證在盡量短的時間內發完所有紀念品,樂樂希望分組的數目最少。你的任務是寫乙個程式...