小明和小紅的感情,是慢慢發展起來的。
他們對對方分別有乙個好感值。定義兩人的親密程度為兩人的好感值之和。
如果他們的親密程度達到v,則他們將走到一起。他們以後的生活將取決於兩人的好感值之差的絕對值,這個值越小,他們的生活將越幸福。
現在,他們對對方的好感值都為0,小明有n件事可以幹,每件事可以增加他對小紅的好感ai點,並且增加小紅對他的好感bi點。(可能為負數)
小明可以任選一些事做,請你幫小明求出怎樣才能讓他們的生活更加幸福(求出兩人在一起的前提下,好感值之差的最小絕對值即可)。
輸入格式:
第1行,兩個正整數n,v。
之後n行,每行兩個空格隔開的整數ai,bi。
輸出格式:
一行,乙個非負整數,表示兩人在一起的前提下,好感值之差的最小絕對值。如果無論如何兩人也無法在一起,輸出-1.
輸入樣例#1: 複製
4 155 6-1 8
7 21 0
輸出樣例#1: 複製
3
對於20%資料,n<=10。
對於全部資料,n<=30,|ai|,|bi|<=100. 資料比較弱
思路:暴力:搜尋+卡時。
#include#include#include
#include
using
namespace
std;
intn,v,a,b,tot;
int ans=0x7f7f7f7f
;int a[350],b[350
];void dfs(int now,int
sum)
if(sum>v) ans=min(ans,abs(a-b));
if(now==n+1) return
; a+=a[now];b+=b[now];dfs(now+1,sum+a[now]+b[now]);a-=a[now];b-=b[now];
dfs(now+1
,sum);
} int
main()
不去卡時,加乙個小優化,就是當好感的差的絕對值是0時直接結束。
#include#include#include
#include
using
namespace
std;
intn,v,a,b,tot;
int ans=0x7f7f7f7f
;int a[350],b[350
];void dfs(int now,int
sum)
if(now==n+1) return
; a+=a[now];b+=b[now];dfs(now+1,sum+a[now]+b[now]);a-=a[now];b-=b[now];
dfs(now+1
,sum);
} int
main()
P2080 增進感情(揹包DP)
思路 將好感度x y作為體積,幸福度x y作為作為價值,然後就是乙個經典的揹包問題了。emmmmm,還可以特判一下,因為幸福度為0時就是最小了,沒有必要看後面的了吧。其實,我自己做的時候,沙雕的認為是每一對的幸福度的絕對值之和,原來是總的的絕對值。luogu judger enable o2 inc...
洛谷P5049 洛谷P5022 題解 旅行
原題 資料加強版 加強版 參考你谷題解 終於調過了 又是一如既往的申必錯誤 noi plus石錘了 原題的資料允許我們 o n 2 暴力斷邊,但是加強版的資料達到了 n log n 級別,我們必須在斷邊這一環節尋求更好的解法。考慮我們進入環後在何處回溯 根據繼續走環走到的點分類 設當前已經從 b 走...
洛谷練習P2279 P1346
2020年,人類在火星上建立了乙個龐大的基地群,總共有n個基地。起初為了節約材料,人類只修建了n 1條道路來連線這些基地,並且每兩個基地都能夠通過道路到達,所以所有的基地形成了乙個巨大的樹狀結構。如果基地a到基地b至少要經過d條道路的話,我們稱基地a到基地b的距離為d。由於火星上非常乾燥,經常引發火...