CodeForces - 254B(思维)

2013年赛事裁判调度算法
本文探讨了一个特定问题:如何确定2013年某截止日期前,为连续多日赛事分配最少裁判人数的算法。通过将日期转换为天数并计算每日需求,最终找出所需最少裁判总数。

原题网址

  1. 题目大意
    对于2013年,输入一个日期,代表截止日期,有两个数值分别表示人数和天数,人数是指每天需要的裁判数,天数是指在截止日期之前的天数,求需要的最少人数。

  2. 思路
    输入的只是2013年的时间,加上往前推的天数,总的时间不会超过465,这时候我可以将每个时间折合成天数,将这个数量作为下标计算每天需要的人数,最后所有天数中最大值就是所需要的最少人数。

  3. 代码

#include<bits/stdc++.h>
using namespace std;
int da[14]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int mon[14];
int a[500];
int main()
{
    ios::sync_with_stdio(false);
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    for(int i=1;i<12;i++)
    {
        mon[i]=mon[i-1]+da[i];
        //cout<<mon[i]<<" ";
    }
    int n;
    cin>>n;
    int res=0;
    for(int i=0; i<n; i++)
    {
        int m,d,p,t;
        cin>>m>>d>>p>>t;
        m--;
        for(int j=1; j<=t; j++)
            res=max(res,a[mon[m]+d+100-j]+=p);
    }
    cout<<res<<endl;
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值