牛半仙的妹子图——2020牛客NOIP赛前集训营-提高组(第三场)

博客讲述了牛半仙如何计算在不同困难接受程度下,每晚能获得的妹子类型愉悦值之和。通过离散化处理大权值的边,使用SPFA算法求最小最大困难值,并计算不同区间内的喜悦值之和。代码实现包括优先队列的使用和特殊前缀和的处理。
摘要由CSDN通过智能技术生成

一.题目

题目描述
牛半仙有 n n n​个妹子,他把每个妹子都藏到了一座不同的房子中。
这些房子间有 m m m条双向道路,每条道路都有一个困难程度 w i w_i wi​。
牛半仙对每个妹子都赋予了一个类型 c i c_i ci​。
牛半仙每晚都会多次从自己的家 x x_{} x出发,去见所有他能见到的妹子。
牛半仙每次出发见完所有妹子后的都会得到一个愉悦值 v v_{} v,为这次见到的妹子的不同种类数个数。
有些道路过于困难,困难程度大于了牛半仙的困难接受程度,牛半仙因为要留尽量多的体力给妹子,所以是不会从这些道路上经过的。
不过牛半仙每出发一次后困难接受程度也会增加 1 1_{} 1
然而当对困难的接受程度大于最大困难接受程度 r i r_i ri时,牛半仙这晚就不会再出去了。
牛半仙第i晚的初始困难接受程度 l i l_i li​,以及最大困难接受程度 r i r_i ri,牛半仙想知道他每晚能获得的愉悦值之和。
数据范围
n , m ≤ 5 ∗ 1 0 5 , q ≤ 1 0 5 , c i ≤ 600 , 0 ≤ w i , l i , r i ≤ 1 0 9 n,m\leq5*10^5,q\leq 10^5,c_i\leq600,0\leq w_i,l_i,r_i\leq 10^9 n,m5105

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值