首页 > 其他 > 详细

Kick Start 2018 Round D Candies

时间:2020-03-18 17:34:59      阅读:53      评论:0      收藏:0      [点我收藏+]

先贴个big dataset不能通过的代码,过后补一个能过的:

#include<bits/stdc++.h>
#define INF 9223372036854775807

int main()
{
    using namespace std;
    int T;
    cin >>T;
    int co = 1;
    while(T--)
    {
        long long D;
        int N,O;
        long long x[50005];
        int A,B,C,M,L;
        cin >> N >> O >>D;
        cin >> x[0] >> x[1] >> A >> B >>C >> M >>L;
        for(int i = 2;i < N;i++)
        {
            x[i] = (A * x[i-1] + B * x[i-2] + C) % M;
            x[i - 2] += L;
        }
        x[N-1] += L;
        x[N-2] += L;                                                 //
        
        long long ss = -INF;
        int o = 0;
        long long d;
        for(int i = 0;i < N;i ++)
        {
            d = 0;
            o = 0;
            for(int k = 0;o <= O && d < D && i + k < N;k ++)
            {
                d += x[i + k];                                       //应使用前缀和 
                o += x[i + k]%2;
                if(d <= D && d > ss && o <= O)                       //
                {
                    ss = d;
                }
            }
        }
        cout << "Case #" << co ++ << ": ";
        if(ss == -INF)
        {
            cout << "IMPOSSIBLE" << endl;
        }
        else cout << ss << endl;
    }
}

 

Kick Start 2018 Round D Candies

原文:https://www.cnblogs.com/my-growth/p/12518346.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!