BZOJ4334【JSOI2012】铁拳 <上下界网络流>
Problem
【JSOI2012】铁拳
Description
经过了可怕的第三次世界大战后,国家政府崩溃,各大财团趁机夺取掌控世界。长年战争后,八大财团幸存并割据一方,其中最强的当属掌控北美的铁拳。
在铁拳财团所维护的文明区域中,有一项最为光荣、重要的赛事——,也就是铁拳大赛。中云集了世界各地各财团鼎力资助的世外高手,只为了赢得,得到无上的荣耀,当然还有随之而来的权力。本来一切秩序井然,但一个来自贫民窟的少年风间仁意外地在海选中赢了正式选手,获得了决赛资格,从此格局被打乱……
为了应对这突如其来的变数,管理层决定先对联盟中所有的选手进行评估,以更好地掌握大局。
知最近届比赛出现过的位选手,背后都有着各自财团的资助,并且签下了合同。由于这是各财团的高度机密,合同的具体细节无从得知,但铁拳财团的间谍们通过各种渠道得知了每个选手的薪金范围(显然薪金是非负数)。
对于最近届的比赛(从开始编号),每一届联盟都会进行清算,通过国际金融手段准确计算出这一届联盟选手身价总和的变化。每一届中,会有一些新选手加入,也会有部分选手在比赛中丧失了战斗能力,而被踢出联盟,流放到贫民窟。
现在给出联盟中位选手的身价范围,以及他们 进入联盟的届数(表示在届以前就已经是联盟选手) 和 离开联盟的届数(表示是现役选手)。同时给出最近届中,每一届联盟选手身价总和减去上一届的值。
请你根据现有信息,尽可能准确地给出每个选手可能的薪金范围。各选手之间的薪金范围可以不同时成立,但对于一位选手的范围中的每一个数,都必须至少存在一种合法方案使该选手能得到相应薪金,而且这个范围跨度要尽可能大。
如果输入信息有误,请输出,表示无解。
Input
第一行一个正整数,意义见上(下同)。
第二行包含个整数,第个表示第届中 选手身价总和 的变化情况。
第三行一个正整数。
接下来n行,每行包含四个整数,分别表示 身价下限 、 身价上限 、 出道届数 、 退役届数,细节请参照上文。
保证出道时间严格比退役时间小(除外)。
Output
一行,输出最小的答案。
Sample Input
1 | 2 |
Sample Output
1 | 1.00 2.00 |
HINT
样例解释
第二届只有号离开了,可以锁定号的薪金是。
如此一来,号和号薪金之和为,那么号最少能拿,最多能拿;号最少能拿到,最多能拿到。
数据规模
对于的数据,,,给定薪金范围不超过。
应上传者要求,此题不公开,如有异议,请提出.
标签:线性规划
上下界网络流
Solution
线性规划转上下界网络流。
挺麻烦的。
首先这些条件可以看作个等式,故可转化为线性规划。而解线性规划只有网络流和单纯形两种,不会单纯形,所以用了网络流。
将每个等式作为一个点,每个变量作为一条边,不难发现一个变量只会进入等式一次,出等式一次。若此变量从等式进,从等式出,范围为,则连边,容量为。对于的变量,则连边;对于的变量,则连边。
接下来处理每个等式的差值。可以发现等式与的差值可以用边或表示,即为从源点补进来多少流量或从汇点分出去多少流量。因而可以连边:设等式与的差值为,若,则连边,容量为;若,则连边,容量为。
这样就可以构建出一个上下界网络流的模型。
建模后,可以在一开始就跑一遍可行流,判断是否有解。
之后有两种做法:
法:对每条边的取值进行二分,分别去找最大值和最小值,每次的时候把重设当前边的范围,跑可行流验证。
法:对于每条边,找到先前求可行流时它的流量,考虑它最多可以再少承担多少流量或多承担多少流量。那么可以在残量网络上断掉当前边,以起点为源,终点为汇,跑最大流得到它最多可以减少多少流量;再以终点为汇,起点为源,跑最大流得到它最多可以增加多少流量。设最多可以减少,最多可以增加,此边的下限为,上限为,可行流中此边的流量为,则答案为和。这里需要注意两个答案都需要在之间,即最终答案应该为和。
建议使用法,同时提供优质法。
Code
1 |
|