洛谷 P2080 增進感情

2022-04-05 04:19:37 字數 1489 閱讀 6025

小明和小紅的感情,是慢慢發展起來的。

他們對對方分別有乙個好感值。定義兩人的親密程度為兩人的好感值之和。

如果他們的親密程度達到v,則他們將走到一起。他們以後的生活將取決於兩人的好感值之差的絕對值,這個值越小,他們的生活將越幸福。

現在,他們對對方的好感值都為0,小明有n件事可以幹,每件事可以增加他對小紅的好感ai點,並且增加小紅對他的好感bi點。(可能為負數)

小明可以任選一些事做,請你幫小明求出怎樣才能讓他們的生活更加幸福(求出兩人在一起的前提下,好感值之差的最小絕對值即可)。

輸入格式:

第1行,兩個正整數n,v。

之後n行,每行兩個空格隔開的整數ai,bi。

輸出格式:

一行,乙個非負整數,表示兩人在一起的前提下,好感值之差的最小絕對值。如果無論如何兩人也無法在一起,輸出-1.

輸入樣例#1: 複製

4 15

5 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。由於火星上非常乾燥,經常引發火...