问题描述

| 试题编号: | 201809-2 |

| 试题名称: | 买菜 |

| 时间限制: | 1.0s |

| 内存限制: | 256.0MB |

问题描述

小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的各个装车的时间段。

输出格式

输出一行,一个正整数,表示两人可以聊多长时间。

样例输入

4
1 3
5 6
9 13
14 15
2 4
5 7
10 11
13 14

样例输出

3

数据规模和约定

对于所有的评测用例,1 ≤ n ≤ 2000, a< b< ai+1,c< d< ci+1,对于所有的i(1 ≤ i ≤ n)有,1 ≤ ai, bi, ci, di ≤ 1000000。

题解

因为不清楚给的数据是否有序,所以先对左端点进行排序,此后分三种情况,一种是小H的时间段的右端相交于小W的时间段的内部,或者是小H的时间段的右端包含了小W的时间段;一种是小W的时间段的右端相交于小H的时间段的内部,或者是小W的时间段的右端包含了小H的时间段;最后一种是其中一个人的时间段相交于另一个人的两个不同时间段,例:小H的这一个时间段的右端落在小W的时间段的内部,小H的下一个时间段的左端落在小W的时间段的内部,就有两部分相交。n <= 2000 ,可以用两层循环解决第三种情况。代码如下:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <utility>
#define ll long long
#define ull_ unsigned long longusing namespace std ;const int maxx = 2005 ;
int n ;typedef struct{int left ;int right ;
}meassage ;meassage little_H[maxx] , little_W[maxx] ;void init(){for ( int i = 0 ; i < n ; i ++ ){cin >> little_H[i].left >> little_H[i].right ;}for ( int i = 0 ; i < n ; i ++ ){cin >> little_W[i].left >> little_W[i].right ;}return ;
}bool cmp( meassage x , meassage y ){return x.left < y.right ;
}void test(){for ( int i = 0 ; i < n ; i ++ ){cout << little_H[i].left << " " << little_H[i].right << endl ;}cout << endl ;for ( int i = 0 ; i < n ; i ++ ){cout << little_W[i].left << " " << little_W[i].right << endl ;}cout << endl ;return ;
}int main(){while ( cin >> n ){memset(little_H , 0 , sizeof(little_H)) ;memset(little_W , 0 , sizeof(little_W)) ;init() ;sort( little_H , little_H + n , cmp ) ;sort( little_W , little_W + n , cmp ) ;//    test() ;int ans = 0 ;for ( int i = 0 ; i < n ; i ++ ){for ( int j = 0 ; j < n ; j ++ ){if ( little_H[i].left <= little_W[j].left && little_H[i].right >= little_W[j].left ){if ( little_H[i].right <= little_W[j].right ){ans += little_H[i].right - little_W[j].left ;}else{ans += little_W[j].right - little_W[j].left ;}}else if ( little_W[j].left <= little_H[i].left && little_W[j].right >= little_H[i].left ){if ( little_W[j].right <= little_H[i].right ){ans += little_W[j].right - little_H[i].left ;}else{ans += little_H[i].right - little_H[i].left ;}}}}cout << ans << endl ;}return 0 ;
}

转载于:https://www.cnblogs.com/Cantredo/p/9839837.html

CCF 201809-1 买菜相关推荐

  1. CCF计算机软件能力认证试题练习:201809-2 买菜

    买菜 来源:CCF 标签: 参考资料: 相似题目: 题目 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装 ...

  2. CSP 201809 第二题 买菜

    问题描述 ​ 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车,两人都要买n种菜,所以也都要装n次车.具体的,对于小H来说有n个不相交的时 ...

  3. CCF 201809-2 买菜 python

    题目 代码 # 201809-2 买菜# 输入 n=int(input()) line=[] maxt=0 for i in range(2*n):s,t=map(int,input().split( ...

  4. CCF计算机软件能力认证201809-2买菜(C语言版)

    ccf-csp计算机软件能力认证201809-2买菜(C语言版) 题目内容: 问题描述 小H和小W来到了一条街上,两人分开买菜,他们买菜的过程可以描述为,去店里买一些菜然后去旁边的一个广场把菜装上车, ...

  5. 人民日报点名批评互联网社区团购,各种“买菜”软件要黄?程序员们:感觉白加班了!...

    最近互联网社区团购赛道大热,众多互联网巨头纷纷砸钱进去.美团优选.多多买菜.橙心优选.叮咚买菜.每日优鲜. 兴盛优选.淘宝买菜等买菜软件层出不穷,还有网友兴致勃勃地发帖问大家看好哪家公司. 但互联网资 ...

  6. 程序员发长贴讲述真实某多多:薪水高,普调高,环境差,厕所少!强制去买菜,全行业竞业,穿拖鞋会被暴力执法!...

    某多多作为一家新兴互联网大厂,是众多程序员曾经工作.正在工作和想去工作的地方.关于某多多的真实情况,网上一直众说纷纭,争论不休,有吹有黑,我们之前也发过不少关于某多多的文章.最近有个已经离职的前某多多 ...

  7. 某多多买菜程序员:最长持续工作时间高达30小时!睁眼就工作,闭眼就睡觉!多多买菜离职率超级高!公司不得不降低门槛持续招人!...

    拼多多的买菜业务上线以后一直争议不断,出现了诸如工作强度过高.强制要求员工转岗等热议话题,那么多多买菜的工作现状到底是怎么样? 一个拼多多员工发帖爆料:和去买菜的同事聊了下,他们最长的持续工作时间达到 ...

  8. 3000多种细菌大迁徙,就发生在你买菜接过钞票的一瞬间

    十年前的一天,你去市场买菜,掏出一张崭新的百元大钞付款,等待找赎.店家刚切过猪肉,鲜血淋淋的手擦了擦挥刀后额头渗出热汗,然后从腰包里摸出一张张破旧的零钱递给你. 你尊重劳动人民的辛劳,但是不知道这些汗 ...

  9. 2021.4.7 美团买菜后端开发实习生(二面)(含总结)(已oc)

    title: 2021.4.7 美团买菜后端开发实习生(二面) tags: 面经 2021.4.7 美团买菜后端开发实习生(二面) 自我介绍 Java学习时长 final关键字的作用(见下文) 注解有 ...

最新文章

  1. 未来医疗AI发展的八大趋势
  2. 几种常见的模式识别算法
  3. Xshell配置ssh使用密钥公钥(publice key)登录
  4. python类库32[多进程同步Lock+Semaphore+Event]
  5. WinForm之创建word并操作文档
  6. python selenium webdriver方法封装(find_element_by)
  7. linux的samb配置文件,Linux系统如何配置samba文件服务器?
  8. ngRx 官方示例分析 - 4.pages
  9. MySQL IFNull 详解
  10. [vue] vue的is这个特性你有用过吗?主要用在哪些方面?
  11. AI赋能案例—阿里云身份证OCR识别助力实现“无接触”式政务服务!
  12. Java中的泛型全解析(一)
  13. 牛顿插值法 matlab程序计算方法,牛顿插值法matlab程序
  14. 001 - CMake 安装
  15. 如何安装Stata 15及网状Meta包 最新图文教程一看就会
  16. 美国之行---领略真正的美国文化--牛排
  17. 移动端性能专项测试之 CPU
  18. 祭祀扫墓网站php源码,斗破苍穹:不可错过的玄幻
  19. 2021最新苹果开发者计划注册流程
  20. java后端研发经典面试题总结,为公司招兵买马

热门文章

  1. Linux Vim 光标错位,技术|Vim 复制粘帖格式错乱问题的解决办法
  2. python递归必须要有_python如何递归生成树?
  3. html5录像功能限制时间,HTML5拍照和摄像机功能实战详解
  4. 中职升高职c语言程序设计教程课后答案,中职C语言教学创新与实践论文
  5. tf 如何进行svd_Tensorflow快餐教程(6) - 矩阵分解
  6. python与材料计算公式_《从问题到程序:用Python学编程和计算》——2.11 补充材料-阿里云开发者社区...
  7. linux 查看下挂磁盘,linux下磁盘挂载与查看
  8. php进度条插件,分享8款优秀的 jQuery 加载动画和进度条插件_jquery
  9. 靶场练习第十天~vulnhub靶场之dc-2
  10. 通过查看__cplusplus的值查看编译器的C++标准