CCF计算机软件能力认证试题练习:201809-2 买菜
买菜
来源:CCF
标签:
参考资料:
相似题目:
题目
小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车。具体的,对于小H来说有n个不相交的时间段[a1,b1],[a2,b2]…[an,bn]在装车,对于小W来说有n个不相交的时间段[c1,d1],[c2,d2]…[cn,dn]在装车。其中,一个时间段[s, t]表示的是从时刻s到时刻t这段时间,时长为t-s。
由于他们是好朋友,他们都在广场上装车的时候会聊天,他们想知道他们可以聊多长时间。
输入
输入的第一行包含一个正整数n,表示时间段的数量。接下来n行每行两个数ai,bi,描述小H的各个装车的时间段。接下来n行每行两个数ci,di,描述小W的各个装车的时间段。
输出
输出一行,一个正整数,表示两人可以聊多长时间。
输入样例
4
1 3
5 6
9 13
14 15
2 4
5 7
10 11
13 14
输出样例
3
提示
对于所有的评测用例,1 ≤ n ≤ 2000, ai < bi < ai+1,ci < di < ci+1,对于所有的i(1 ≤ i ≤ n)有,1 ≤ ai, bi, ci, di ≤ 1000000。
解题思路
画图表示讨论所有情况,其中绿色代表小H,红色代表小W。(表示不唯一)
第一种情况:
第二种情况:
第三种情况:
第四种情况:
第五种情况:
第六种情况:
参考代码
#include<stdio.h>
#define MAXN 2005struct DURATION{int s,t; //s是左端,t是右端
}dura1[MAXN],dura2[MAXN]; //dura1:小H,dura2:小Wint n;int main(){scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d%d",&dura1[i].s,&dura1[i].t);}for(int i=0;i<n;i++){scanf("%d%d",&dura2[i].s,&dura2[i].t);}int i=0,j=0;int ans=0;//同时遍历小H和小W的时间段while(i<n && j<n){if(dura1[i].t<=dura2[j].s){i++;continue;}if(dura1[i].s<dura2[j].s && dura1[i].t<dura2[j].t){ans+=dura1[i].t-dura2[j].s;i++;continue;}if(dura1[i].s>=dura2[j].s && dura1[i].t<dura2[j].t){ans+=dura1[i].t-dura1[i].s;i++;continue;}if(dura1[i].s>=dura2[j].s && dura1[i].s<=dura2[j].t && dura1[i].t>=dura2[j].t){ans+=dura2[j].t-dura1[i].s;j++;continue;}if(dura1[i].s>dura2[j].t){j++;continue;}if(dura1[i].s<=dura2[j].t && dura1[i].t>=dura2[j].t){ans+=dura2[j].t-dura2[j].s;j++;continue;}}printf("%d",ans);return 0;
}
CCF计算机软件能力认证试题练习:201809-2 买菜相关推荐
- CCF计算机软件能力认证试题练习:201903-1 小中大
小中大 来源:CCF 标签: 参考资料: 相似题目: 背景 在数据分析中,最小值最大值以及中位数是常用的统计信息. 题目 老师给了你 n 个整数组成的测量数据,保证有序(可能为升序或降序),可能存在重 ...
- CCF计算机软件能力认证试题练习:201803-2 碰撞的小球
碰撞的小球 来源:CCF 标签: 参考资料: 相似题目: 题目 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上, ...
- CCF计算机软件能力认证试题练习:201909-2 小明种苹果(续)
小明种苹果(续) 来源:CCF 标签: 参考资料: 相似题目: 题目 小明在他的果园里种了一些苹果树,这些苹果树排列成一个圆.为了保证苹果的品质,在种植过程中要进行疏果操作.为了更及时地完成疏果操作, ...
- CCF计算机软件能力认证试题练习:201609-3 炉石传说
炉石传说 来源:CCF 标签: 参考资料: 相似题目: 题目 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集 ...
- CCF计算机软件能力认证试题练习:201803-4 棋局评估
棋局评估 来源:CCF 标签: 参考资料: 相似题目: 题目 Alice和Bob正在玩井字棋游戏. 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是"X", ...
- CCF计算机软件能力认证试题练习:201912-3 化学方程式
化学方程式 来源:CCF 标签: 参考资料: 相似题目: 题目 化学方程式,也称为化学反应方程式,是用化学式表示化学反应的式子.给出一组化学方程式,请你编写程序判断每个方程式是否配平(也就是方程式中等 ...
- CCF计算机软件能力认证试题练习:201612-2 工资计算
工资计算 来源: 标签: 参考资料: 相似题目: 题目 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资.假设他一个月的税前工资(扣除五险一金后.未扣税前的工资)为S元,则他应 ...
- CCF计算机软件能力认证试题练习:201712-3 Crontab
Crontab 来源: 标签: 参考资料: 相似题目: 题目 输入 输出 输入样例 3 201711170032 201711222352 0 7 * * 1,3-5 get_up 30 23 * * ...
- CCF计算机软件能力认证试题练习:201512-2 消除类游戏
消除类游戏 来源: 标签: 参考资料: 相似题目: 题目 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有 ...
最新文章
- 国际10-20标准电极位置
- datetime 取分钟_如何仅从DateTime获取小时和分钟
- HANA live report - metadata retrieve - where I can find it in HANA studio
- ASIHTTPRequest-断点续传需要原网站支持!
- postgresql linux rpm,postgresql 9.6 rpm包安装 CentOS 7.2 X64
- Linux常用的基本命令10
- 这个Python资源在GitHub上标星超8000,现在被翻译成了中文 | 资源
- 【k8s】记踩坑无数后的kubernetes二进制安装详细步骤
- c# 对象json互相转换_C#编程实现对象与JSON串互相转换实例分析
- EXCEL VBA编程(excel办公高手必经之路)-曾贤志-专题视频课程
- Sql Server2005分离数据库
- 火狐扩展教程_Firefox扩展模板
- 原理图与PCB篇(一)mil和mm之间的换算
- 软件工程的完整生命周期
- OpenCV函数remap详解
- 《全面解读IPTV生态链》-转自CSDN
- JavaSE——Day12
- 环境变量的作用,为什么要设置环境变量
- Unity见缝插针游戏源码完整版
- All in 区块链的百度昨日发布了白皮书,说了些什么?