网站首页
编程语言
数据库
系统相关
其他分享
编程问答
P2294
2024-09-14
P2294 [HNOI2005] 狡猾的商人 两种做法
贪心#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1e3+100;intn,m;structNODE{ intl,r,val; booloperator<(constNODE&h)const { if(l!=h.l) returnl>h.l; returnr>h.r; }};priority_queue
2024-07-23
P2294 [HNOI2005] 狡猾的商人
原题链接题解先看成前缀和,这样就是维护\(pre[r],pre[l-1]\)两点之间的权值如果是false,代表存在矛盾,且矛盾出现在回路我们可以把这个回路之前的元素看成一个集合,如果新加入的边使得原先两点间的权值不等便失效而对于一个集合里的元素,由于相加具有矢量特性,所以我们维护集合内