[AHOI2013]打地鼠(网络流)
【问题描述】
游戏里一共会冒出来N个地鼠,这些地鼠冒出来的位置都分布在一条直线上。第i个地鼠会在Ti时刻在Xi位置冒出来,打到第i个地鼠的得分是Pi。
当游戏开始时(也就是0时刻),JYY左手的位置为XLEFT,右手的位置为XRIGHT。JYY的手的最大移动速度是V(每单位时刻最多移动的距离为V)。 地鼠会在瞬间冒出来然后消失。如果在对应的时刻JYY的
一只手恰好也在地鼠冒出来的位置,那么JYY就可以在瞬间完成击打动作并得到对应的分数;否则,JYY就只能错过这只地鼠了L。
JYY两只手都拿着锤子,所以两只手是可以同时打地鼠的。
然而,如果在游戏过程中JYY的两只手交叉的话,JYY会感到很不舒服(这个动作确实很别扭,而且两只手可能会互相阻碍而影响移动速度),所以JYY希望在整个游戏过程中左手的位置XLEFT永远
严格小于右手的位置XRIGHT。
JYY想知道,他最多能得多少分呢?
【输入格式】
从文件mole.in中读入数据。 输入数据的第一行包含四个整数N,V,XLEFT和XRIGHT; 接下来N行,分别描述N个可能出现的地鼠; 其中第i行包含三个整数Xi,Ti,Pi。
数据保证在同一个时刻不会有两个地鼠出现在同样的位置。
【输出格式】
输出到文件mole.out中。
输出一行一个整数,表示JYY最多能够得到的分数。
【样例输入1】
3 10 150 250
100 20 123
201 10 67
202 10 45
【样例输出1】
190
游戏里一共会冒出来N个地鼠,这些地鼠冒出来的位置都分布在一条直线上。第i个地鼠会在Ti时刻在Xi位置冒出来,打到第i个地鼠的得分是Pi。
当游戏开始时(也就是0时刻),JYY左手的位置为XLEFT,右手的位置为XRIGHT。JYY的手的最大移动速度是V(每单位时刻最多移动的距离为V)。 地鼠会在瞬间冒出来然后消失。如果在对应的时刻JYY的
一只手恰好也在地鼠冒出来的位置,那么JYY就可以在瞬间完成击打动作并得到对应的分数;否则,JYY就只能错过这只地鼠了L。
JYY两只手都拿着锤子,所以两只手是可以同时打地鼠的。
然而,如果在游戏过程中JYY的两只手交叉的话,JYY会感到很不舒服(这个动作确实很别扭,而且两只手可能会互相阻碍而影响移动速度),所以JYY希望在整个游戏过程中左手的位置XLEFT永远
严格小于右手的位置XRIGHT。
JYY想知道,他最多能得多少分呢?
【输入格式】
从文件mole.in中读入数据。 输入数据的第一行包含四个整数N,V,XLEFT和XRIGHT; 接下来N行,分别描述N个可能出现的地鼠; 其中第i行包含三个整数Xi,Ti,Pi。
数据保证在同一个时刻不会有两个地鼠出现在同样的位置。
【输出格式】
输出到文件mole.out中。
输出一行一个整数,表示JYY最多能够得到的分数。
【样例输入1】
3 10 150 250
100 20 123
201 10 67
202 10 45
【样例输出1】
190
【样例输入2】
10 2 1000 2000
400 300 1
600 200 1
700 800 1
700 500 1
900 600 1
1000 700 1
1300 900 1
1400 400 1
1500 1000 1
2000 100 1
【样例输出2】
10
【数据规模与约定】
对于10%的数据满足N ≤ 7;
对于25%的数据满足N ≤ 30;
对于50%的数据满足 N ≤ 100;
对于65%的数据满足 N ≤ 600;
对于100%的数据满足 1 ≤ N ≤ 3000, 1 ≤ XLEFT < XRIGHT ≤ 10^5,1 ≤ Ti ≤ 10^5,1 ≤ Pi ≤10^5,1 ≤ Xi ≤ 10^5,1 ≤ V ≤ 10^4,。
400 300 1
600 200 1
700 800 1
700 500 1
900 600 1
1000 700 1
1300 900 1
1400 400 1
1500 1000 1
2000 100 1
【样例输出2】
10
【数据规模与约定】
对于10%的数据满足N ≤ 7;
对于25%的数据满足N ≤ 30;
对于50%的数据满足 N ≤ 100;
对于65%的数据满足 N ≤ 600;
对于100%的数据满足 1 ≤ N ≤ 3000, 1 ≤ XLEFT < XRIGHT ≤ 10^5,1 ≤ Ti ≤ 10^5,1 ≤ Pi ≤10^5,1 ≤ Xi ≤ 10^5,1 ≤ V ≤ 10^4,。
分析:
“左手严格小于右手”真心很坑,给人的感觉只能dp,但dp肯定是过不去的……于是下面转自Mato:首先,一个很重要的事实就是,“整个过程中左手所在的位置严格小于右手”其实是一个废条件!!因为如果左右手交叉了,必然是左手试图去打靠右的一个,而右手试图去打靠左的一个,此时,让它们交换,则两只手移动的距离都变小,方案仍然合法,且更优(我太弱了,当时就是在这里想抽了很久,以至于木有做这题……后来才知道这题很水……真悲剧!!!)
额本渣茅塞顿开……然后就可以费用流搞了,思想的是将能连续打击的2只地鼠连边,跑最大费用最大流,具体Mato说的很详细了