首页 > TAG信息列表 > P3980
【费用流】luogu_P3980 [NOI2008] 志愿者招募
题意 项目需\(n\)天才能完成,其中第\(i\)天至少需要\(a_i\)个人。 一共有\(m\)类志愿者可以招募。其中第\(i\)类可以从第\(s_i\)天工作到第\(t_i\)天,招募费用是每人\(c_i\)元。 设计一种最优的招募方案使得用尽量少的费用招募足够的志愿者。 \(1\leq n\leq 1000,1\leq m\leq 10000\)P3980 [NOI2008] 志愿者招募
【题意】 【分析】 这道题目的建图方式真的很奇特 首先我们容易想到S到一类人费用为ci,人到天连边,然后每天到T连ai的边 但是这样显然是不对的 因为没有一一对应,我们要考虑新的建图方式 对于每一中志愿者(si,ti,ci),我们建一条跨过si到ti的所有点的边,费用为ci,来表示“这P3980 [NOI2008] 志愿者招募 题解
P3980 [NOI2008] 志愿者招募 无源汇上下界最小费用流。 /* { ###################### # Author # # Gary # # 2021 # ###################### */ #include<bits/stdc++.h> #define rb(a,b,c) for(int a=b;a<=c;++a) #define rl(a,b,c) fo【题解】P3980 [NOI2008]志愿者招募(费用流求线性规划)
【题解】P3980 [NOI2008]志愿者招募(费用流求线性规划) 题意 有\(m\)种志愿者以及\(n\)天,每种志愿者有固定的服务区间(天),雇佣一个志愿者有不同的费用\(c_i\)。假设每种志愿者无限多,第\(i\)天至少要有\(a[i]\)个志愿者,问最小花费 加入辅助变量\(y_i\)把问题化为\(=a[i]\)。设\(iP3980 [NOI2008]志愿者招募
题意 这道题的难点主要在于处理一个人可以对区间产生贡献这个限制。 我们之前都是将一个人当成流量,但是这一容量的流量可以对一个区间的点产生贡献,这就导致这个问题无法处理。 于是考虑怎么将一个点可以对一个区间产生贡献在图上表示出来: 我们考虑每一天,从\(S\)向\(1\)连容量为\(i