ECNA 2017 Problem J: Workout for a Dumbbell 模拟

参考博客
提交链接
FROM SDUT 2018 Summer Team Contest 8th 地址

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
/*
题意 :【模拟】健身中心一共有10台健身机,我从1-10按照顺序 共锻炼3次,
我在每台健身机上有两个时间,一个是锻炼时间,另一个是休息时间
另外每台健身机都有一个捣乱的人在不停的循环锻炼,他们也有
两个时间,一个是锻炼时间,另一个是休息时间。因此他们可能会耽搁到
我进行锻炼,他们还有一个到达时间,指他们第一次开始锻炼的时间。
在同一时间假如我和捣乱的人同时到达一台健身机,我会让给他们进行锻炼。
假定我在0时刻开始打算在第一台健身机上去锻炼。我在最后一次锻炼后
的时间可以忽略不计。

按照题意进行模拟即可。

*/
int main()
{
    int duan[40],xiu[40];
    int d[40],x[40],st[40];
    for(int i=1;i<=10;i++)
    {
        cin>>duan[i]>>xiu[i];
    }
    for(int i=1;i<=10;i++)
    {
        cin>>d[i]>>x[i]>>st[i];
    }
    int sum = 0;
    for(int i=1;i<=30;i++)
    {
        int j = i%10==0?10:i%10;
       //cout<<j<<endl;
        if(sum>=st[j])
        {
            int tmp = sum-st[j];
            int k = tmp/(d[j]+x[j])*(d[j]+x[j]);
            //求出我在等待之后可以开始使用机器的时间
            //假如sum = 20,d[j] = 2 x[j] = 3,st[j] = 12
            //那么求出k = 5, st[j]+=(5+2);st[j] = 19
            st[j]+=(k+d[j]);
            sum =max(sum,st[j]);
            st[j]+=x[j];
            //经过上述操作后,第j个捣乱的人的开始时间肯定刚好大于sum
            //并且sum取了sum,st[j],使得在下面计算时保证了我不被其他人耽搁
        }
        //假如当前时间早于在该机器上的到达时间
        sum+=duan[j];
        st[j] = max(sum,st[j]);
        //更新捣乱的人的到达时间,因为他因为我被耽搁了
        sum += xiu[j];

    }
    cout<<sum-xiu[10]<<endl;
    return 0;
}
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值