每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399
输入一堆要完成的任务,每个任务有开始时间和要完成的时间,求把这些任务做完最快要多久。(原题是回忆版题目,题意表述不是很明确,这里简单认为个任务可以在相同时间段内进行不会冲突,时间的格式采用的是整数)
输入格式:
输入任务的总数各个任务开始的时间和所需要的时间
输出格式:
所需时间
输入样例:
52 105 34 96 37 7
输出样例:
12
解决方法:
(1)算法的基本思想:
首先,找出各个任务中最早的开始时间,再找出最晚的结束时间(计算各个任务开始时间+完成时间),计算最晚结束时间和最早开始时间的差值。
(2)代码实现:
#includeusingnamespacestd;typedefstructTask{int beg_time;int spend_time;}Task; intmain(void){int start = 100000000;int end = -1;int n;cout << "请输入任务总数:" << endl;cin >> n; Task task[n];cout << "请输入各个任务的开始时间和所需时间:" << endl; for(int i = 0; i < n; i++){cin >> task[i].beg_time;cin >> task[i].spend_time;if(task[i].beg_time < start){ start = task[i].beg_time; }if(task[i].spend_time + task[i].beg_time > end){ end = task[i].beg_time + task[i].spend_time; } }cout << "所需时间为:" << end - start << endl;return0;}
微信发红包的问题,输入两个数m和n,分别表示要发的钱数以及红包总包数,然后输出每个人发到了多少钱。输入格式:
红包的金额总数
人数
输出格式:
每个人抢到的金额输入样例:
5.24
输出样例:
0.85 1.74 0.24 2.37
