題解 洛谷P1194 買禮物

2022-05-24 09:09:11 字數 676 閱讀 1393

原題:傳送門

如果兩個物品之間存在優惠關係就連一條邊,注意值為0不要連邊

然後再加乙個節點0,往點1~b連權為a的邊

然後求一遍最小生成樹即可

**:

#include#include

#include

#include

using

namespace

std;

int a,b,family[510

];struct

edgee[

134750

];int

cmp(edge aa,edge bb)

int m=0

;void build(int u,int v,int

w)int find(int

x)int ans=0,tot=0

;int

main()

for(int i=1;i<=b;i++)

build(

0,i,a);

for(int i=0;i<=b;i++)

family[i]=i;

sort(e+1,e+m+1

,cmp);

for(int i=1;i<=m;i++)

}printf("%d

",ans);

return0;

}

洛谷P1194 買禮物

又到了一年一度的明明生日了,明明想要買b樣東西,巧的是,這b樣東西 都是a元。但是,商店老闆說最近有 活動,也就是 如果你買了第i樣東西,再買第j樣,那麼就可以只花k i,j 元,更巧的是,k i,j 竟然等於k j,i 現在明明想知道,他最少要花多少錢。輸入格式 第一行兩個整數,a,b。接下來b行...

洛谷 P1194 買禮物

又到了一年一度的明明生日了,明明想要買bb樣東西,巧的是,這bb樣東西 都是aa元。但是,商店老闆說最近有 活動,也就是 如果你買了第ii樣東西,再買第jj樣,那麼就可以只花k ki,j 元,更巧的是,k ki,j 竟然等於k kj,i 現在明明想知道,他最少要花多少錢。輸入格式 第一行兩個整數,a...

洛谷 P1194 買禮物

這道題其實就是轉化乙個模型就可以了。買了乙個另外乙個又優惠,其實就相當於在優惠的時候連一條邊,因為不可能多買,所以就是建一棵最小生成樹。最後因為肯定買了一件物品,要加上最初的單價。include using namespace std struct node node e 510000 int pr...