年会抢玩偶游戏

题目链接:  年会抢玩偶游戏

题意:
n个人站成一排来抢m个小玩偶,规定每个人抢到的礼物不能比左右两边的人多两个或以上,赢得游戏的人拥有最多的玩偶,问第k个位置的人在赢得游戏时拥有多少玩偶?

分析:设第k位置的人拥有玩偶数为p,为了使其赢得游戏,我们自然地想到让(k-1)~1位置的人玩偶数依次减1,(k+1)~n的依次减1,令s = k(k-1)/2-(n-k+1)(n-k)/2,即有np - r = m,但要确保p为整数,(m+r)需为n的倍数,所以前面的(k-1)~1的依次减1以及(k+1)~n的依次减1未必都能做到。因为第k个位置为胜者,其余n-1位置的人抢到的玩偶都较之少,所以最多遍历n次,每次将前面多减的1加回来即可。注意k可能越界
另:题目输入描述有些问题,明明n、m、k均为正整数,样例中却存在k为0的情况,而且实测n、m、k均有为0 的case.

#include <iostream>

using namespace std;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值