CCF计算机职业资格认证考试 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的各个装车的时间段。
  接下来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。

1、朴素解,适用于所有情况

 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4     int n;
 5     cin>>n;
 6     int a[n],b[n],c[n],d[n];
 7     for(int i=0;i<n;i++){
 8         cin>>a[i]>>b[i];
 9     }
10     for(int i=0;i<n;i++){
11         cin>>c[i]>>d[i];
12     }
13     int count=0;
14     int i=0,j=0;
15     while(i<n&&j<n){
16         if(a[i]<=c[j]){
17             if(b[i]<=d[j]&&b[i]>c[j]) {
18                 count+=b[i]-c[j];i++;
19             }
20             else {
21                 if(b[i]<=c[j]) i++;
22                 else{
23                     count+=d[j]-c[j];j++;
24                 }
25             }
26
27         }
28         else{
29             if(b[i]>=d[j]&&d[j]>a[i]){
30                 count+=d[j]-a[i];j++;
31             }
32             else{
33                 if(d[j]<=a[i]) j++;
34                 else{
35                     count+=b[i]-a[i];i++;
36                 }
37
38             }
39         }
40
41     }
42     cout<<count;
43     return 0;
44 } 

2、将问题总结一下后

 1 #include<iostream>
 2 using namespace std;
 3 int main(){
 4     int n;
 5     cin>>n;
 6     int a[n],b[n],c[n],d[n];
 7     for(int i=0;i<n;i++){
 8         cin>>a[i]>>b[i];
 9     }
10     for(int i=0;i<n;i++){
11         cin>>c[i]>>d[i];
12     }
13     int count=0;int x,y;
14     for(int i=0;i<n;i++){
15         for(int j=0;j<n;j++){
16             count+=max(0,min(b[i],d[j])-max(a[i],c[j]));
17         }
18     }
19     cout<<count;
20     return 0;
21 }

3、最易理解的,最巧妙的

 1 #include<iostream>
 2 using namespace std;
 3 int ojbk[1000000];
 4 int main(){
 5     int n;
 6     cin>>n;
 7     int a[n],b[n],c[n],d[n];
 8     for(int i=0;i<1000000;i++){
 9         ojbk[i]=0;
10     }
11     for(int i=0;i<n;i++){
12         cin>>a[i]>>b[i];
13         for(int j=a[i];j<b[i];j++){
14             ojbk[j]++;
15         }
16     }
17     for(int i=0;i<n;i++){
18         cin>>c[i]>>d[i];
19         for(int j=c[i];j<d[i];j++){
20             ojbk[j]++;
21         }
22     }
23     int count=0;
24     for(int i=0;i<1000000;i++){
25         if(ojbk[i]>1) count++;
26     }
27     cout<<count;
28     return 0;
29 }

请各位大佬指点

原文地址:https://www.cnblogs.com/LOW-ctfer/p/9840250.html

时间: 2024-10-10 21:38:37

CCF计算机职业资格认证考试 201809-2 买菜的相关文章

第六届CCF计算机职业资格认证考试题解(第三题)(画图)

之前在CSDN上看到别人的代码,跑了下,发现官方给的第一个测例是过不去的,但是提交上去之后是100分,猜测是判题系统中并没有使用题目中给的第一个测例. 另,之前自己写的代码是零分,后来发现是字符之间多输出了空格,以后还是要认真看题. 最后改了之后,是90分,后来经人指正,是没有考虑到划线时遇到'+'时的情况,不论是画'|'还是'-',遇到'+'时仍旧要保持'+'号. 原文:http://blog.csdn.net/jaster_wisdom/article/details/51059144 一下

CCF计算机职业资格认证 2015年3月第2题 数字排序 解法和思路

问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出. 输入格式 输入的第一行包含一个整数n,表示给定数字的个数. 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数. 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数.按出现次数递减的顺序输出.如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的. 样例输入 12 5 2 3 3 1 3 4 2 5 2 3 5 样例输出 3 4 2 3 5 3 1 1 4 1 评

1、开篇:软件职业资格水平考试 - 软件职业资格考试系列文章

计算机技术与软件专业技术资格(水平)考试简称软考,是国家对软件行业的从业人员的软件水平的一种认证考试,也是个人的一种职称考试.该证书是对中国以及日本的软件行业所认可的. 软考到现在已经有几十年历史了,从笔者大学时的初级程序员,现在称为软件工程师的考试,到现在项目管理工程师,都记录着国家对这个行业领域的关爱,也是国家软件领域的标准化和体系化的见证. 这个系列,主要记录笔者对软考的知识点的记录和认识,希望能够帮助到需要相关软考职称考试的朋友们. 级别 资格名称 考试时间 考试科目 高级 信息系统项目

2016年CISA认证考试报名时间和注意事项

年前,ISACA发布了2016年的CISA,CISM,CRISC官方认证考试指南,国际信息安全学习联盟做为国内最大的信息安全认证社区,针对2016年的CISA以及CISM,CRISC做出了以下整理. 中国大陆考点:北京.上海.深圳.广州.南京 官方考试日期:2016年6月11日考试 开始接受报名日期:2015年11月10日 优惠报名截止日期:2016年2月10日 官方考试日期:2016年9月10日考试 优惠报名截止日期:2016年6月15日 最终报名截止日期:2016年7月22日 官方考试日期:

计算机认证考试种类

近期,边上班边上课,想恢复周末要等到暑假.尽管读书比較吃力,但一群同学在一起,谈谈聊聊,还挺有意思.曾经发现自己喜欢把日程排的满满的,感觉有种充实感,可我同学有更牛的,喜欢边读书,边上班,还准备考各种证书,还拉我一起去考,为此我也去看了看计算机方面的证书. 眼下国内的计算机认证考试能够依照主办方首先能够先区分为国内考试和国外考试两个部分,一下分别讲述. 国内考试(基本的): 国内计算机考试側重知识认证,就是測试你的计算机相关基础知识是否具备. 1.计算机等级考试 由教育部考试中心负责命题.组织考

2020年出版专业技术人员职业资格考试,历年真题,考前复习,考试大纲,视频课程

各出版社.期刊社.新媒体单位.网络出版单位: 从2001年8月1日起,国家对出版专业技术人员实行职业资格制度,纳入全国专业技术人员职业资格制度的统一规划.同时在2016年3月10日,由国家新闻出版广电总局.中华人民共和国工业和信息化部联合发布的<网络出版服务管理规定>中,第二章第九条明确规定,从事网络出版服务单位,必须有8名以上具有<中华人民共和国出版专业技术人员职业资格证书>人员,其中中级以上人员不少于3名.<中华人民共和国出版专业技术人员职业资格证书>是传统出版行业

参加51CTO培训,华为HCNP认证考试通过了

在这现代化发展迅猛社会中,只有不断充电才能增加自己的竞争力.尤其我们身处在IT,日新月异的技术的在不断发展.互联网也在不断发展,我们的充电方法也在潜移默化的发生着改变.在原来我们也只能利用课本及书籍来学习,许多疑难杂点无从下手.但是作为中国领先的IT技术网站51CTO,利用线上教学解决我们很多烦恼,线上解答知识难点,跟老师互动教学,避免了很多弯路.     有人说网络工程师不就是破网管,那你就万万想错了,网络数通相当于IT圈子的小徒弟,你连配置网络都不会你还有什么资格去做老师傅(Linux.云计

OCA认证考试指南(1Z0-061)Oracle Database 12c SQL 基础

这篇是计算机类的优质预售推荐<OCA认证考试指南(1Z0-061)Oracle Database 12c SQL 基础>. Oracle认证大师(OCM)最新作品,OCA认证考试官方用书,涵盖了1Z0-061考试的所有OCA目标. 内容简介 <OCA认证考试指南(1Z0-061):Oracle Database 12c SQL基础 旨在帮助读者备战Oracle Certifi ed Associate Oracle Database 12c SQL Fundamentals I考试.书中

V5天下-安德揭密CCIEv5认证考试 就业和前途

在笔者看来,RSCCIEv5,这都不是事儿!您看Yeslab(上海)学员--来自思科的妹子一举拿下CCIEv5.0认证!!又一位double 女IE诞生 那么什么是事儿? 如何学习是事儿!这是我们提到的第一件事 笔者从最初的沁园公寓701室(Yeslab最原始的老巢),到沁园公寓907室(Yeslab的第一步扩张),之后搬到苏州长远天地1005室,又扩展到长远天地601室(Yeslab安全和DC的基地),再之后到,安德作为小弟和几位同僚奔赴上海这个国际大都市,我们的小圈子从华鼎大厦16D开始,而