UESTC 766 乐乐和球球 博弈 暴力(也可以不用暴力法)

ProLightsfx 2016-1-31 134 1/31

乐乐和球球 博弈 暴力(也可以不用暴力法)

My Solution

首先 N>=K 的情况应该是 拿空N-K 然后加上 C
当 N=C 则,为C
            如果
(K/N)*N=C 则 i+C
                                            如果t*(N-i)=C 则也是 i+C   //这里t*(N-i)+(t-1)*i可能>=K,但并不要紧,因为C<=K,则必定满足
                                            否则 i++
因为1e6*20*3 所以O(n)的暴力也基本上不超时
#include 
#include 
//#define LOCAL
using namespace std;

int main()
{
    #ifdef LOCAL
    freopen("a.txt","r",stdin);
    #endif // LOCAL
    int T,N,K,C,t;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&N,&K,&C);
        if((K/N)*N>=C) printf("%d",C);
        else if(N>=K) printf("%d",N-K+C);               //该那空的N-K次全部那空,然后加上C
        else{
            for(int i=1;i<=N;i++){ //找出那空的个数i,最优策略,就是那空的次数尽可能少 t=K/(N-i); if(t*(N-i)>=C) {printf("%d",i+C);break;}
                else if(t*(N-i)<C){ //为了可以看的清楚一点,这里就分2次判断了 if(t*(N-i)+(t-1)*i>=C) {printf("%d",i+C);break;} }
            }
        }
        if(T) printf("n");
    }
    return 0;
}


非特殊说明,本站所有文章均为博主原创,未经许可不得转载。

https://www.prolightsfxjh.com/

Thank you!

                                                                                                                                             ------from ProLightsfx

- THE END -

ProLightsfx

11月16日01:47

最后修改:2024年11月16日
0

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

共有 0 条评论