这道题其实就是转化一个模型就可以了. 买了一个另外一个又优惠,其实就相当于在优惠的时候连一条边,因为不可能多买,所以就是建一棵最小生成树.最后因为肯定买了一件物品,要加上最初的单价. 代码: #include <bits/stdc++.h> using namespace std; struct node{ int l , r , w; }; node e[510000]; int price , n , tot , now , ans; int fa[5100] , vis[5100][51…