【GDKOI2015】星球杯

题目

这里写图片描述

分析

先枚举第一轮排名为第k名的选手(分数为x),则必存在一种最优方案有:
1. 对于分数少于x的0国选手,都安排在第一轮;
2. 对于分数少于x的1国选手,都安排在第二轮。

做一下预处理
1. 第一轮分数低于x的1国选手对答案无贡献,所以我们先筛除这部分选手;
2. 剩下:1国选手 和 第一轮分数不低于x的0国选手;
3. 对于剩余部分的选手,按照第二轮分数从高到低排序

然后动态规划

设F[i][j] : 在前 i 个选手中,有 j 个选手分配到第一轮预赛并排名在前k位

对于0国选手(第一轮得分必不小于x):
a. 分配到第1轮(j < k):F[i+1][j+1] =max(F[i+1][j+1], F[i][j]);
b.分配到第2轮:F[i+1][j] = max(F[i+1][j], F[i][j]);

对于1国的选手:

a.第一轮分数小于x:若i-j < k, F[i+1][j] =max(F[i+1][j], F[i][j] + SecRound[i]);

b.第一轮分数大于等于x:
分配第一轮(j < k): F[i+1][j+1]=max(F[i+1][j+1], F[i][j] + FirRound[i]);

分配第二轮:
a) 当 i - j < k 时, F[i+1][j] = max(F[i+1][j], F[i][j] + SecRound[i]);

b)否则,F[i+1][j] = max(F[i+1][j], F[i][j]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值