题目链接:https://codeforces.com/gym/102392/problem/E
题意:给定n个人年龄,年龄达到lc才能骑车,骑车可以载k-1人,骑车代价为pc;年龄达到lm才能骑motor,motor不能载人;可以用魔法,将一个人年龄转移到另一个人,转移一岁的代价为t,但不能转移超过d岁,及a岁的人,其年龄变化范围为
[
a
−
d
+
1
,
a
+
d
−
1
]
[a-d+1,a+d-1]
[a−d+1,a+d−1].
题解:枚举骑摩托数,将年龄排序,双指针来弄。代码实现具体细节比较多。
代码copy自vj
//coded by ZJUT_7
#include
using namespace std;
const int maxn=100010;
#define inf 0x3f3f3f3f3f3f3f3f
#define ll long long
ll a[maxn];
int main(){
ll n,k,lc,lm,pc,pm,t,d;
scanf("%I64d%I64d%I64d%I64d%I64d%I64d",&n,&k,&lc,&pc,&lm,&pm);
scanf("%I64d%I64d",&t,&d);
for(int i=1;i
关注
打赏
