CCF认证 2018-09-2 买菜(一个20分一个100分,可我感觉两者是一样的思路啊!-已找到错误,漏掉一种情况原来是)

本文主要是介绍CCF认证 2018-09-2 买菜(一个20分一个100分,可我感觉两者是一样的思路啊!-已找到错误,漏掉一种情况原来是),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

  小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

我的买菜思路:

定义两个数组,a[]代表小H,b[]代表小W,(a[0],a[1])、(a[2],a[3])......是小H的搬菜区间;同理(b[0],b[1])、(b[2],b[3])......是小H的搬菜区间;然后判断交叉区间。

 

谁能告诉我为什么呢?一个20分一个100分,可我感觉两者是一样的思路啊!

#include<iostream>
using namespace std;

void chat(int a[],int b[],int n) 
{
    int time=0;
    for(int j=0;j<2*n-1;j=j+2)
    {
        for(int k=0;k<2*n-1;k=k+2)
        {
//这个只有20分 
//            if(b[k]<a[j]&&a[j]<b[k+1]&&b[k+1]<a[j+1])
//                time=time+b[k+1]-a[j];
//            else if(a[j]<b[k]&&b[k+1]<a[j+1])                                // hhhhhh我找到错误了,这里两边都有等于号应该!
//                time=time+b[k+1]-b[k];
//            else if(a[j]<b[k]&&b[k]<a[j+1]&&a[j+1]<b[k+1])
//                time=time+a[j+1]-b[k];
//            else if(b[k]<=a[j]&&a[j+1]<=b[k+1])
//                time=time+a[j+1]-a[j];
//            else time=time+0;
//这个是100分 
            if(a[j]<=b[k]&&b[k]<a[j+1])
            {
                if(b[k+1]<=a[j+1])
                    time+=b[k+1]-b[k];
                else
                    time+=a[j+1]-b[k];
            }
            if(b[k]<a[j]&&a[j]<b[k+1])
            {
                if(b[k+1]<=a[j+1])
                    time+=b[k+1]-a[j];
                else
                    time+=a[j+1]-a[j];
            }
        }
    }
    cout<<time; 
}
int main()
{
    int n,a[4001],b[4001];    
    cin>>n;
    for(int i=0;i<2*n;i++)
    {
        a[i]=b[i]=0;
    }
    for(int i1=0;i1<2*n;i1++)
    {
        cin>>a[i1];
    }
    for(int i2=0;i2<2*n;i2++)
    {
        cin>>b[i2];
    }    
    chat(a,b,n);    
    return 0;

这篇关于CCF认证 2018-09-2 买菜(一个20分一个100分,可我感觉两者是一样的思路啊!-已找到错误,漏掉一种情况原来是)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726968

相关文章

SpringSecurity JWT基于令牌的无状态认证实现

《SpringSecurityJWT基于令牌的无状态认证实现》SpringSecurity中实现基于JWT的无状态认证是一种常见的做法,本文就来介绍一下SpringSecurityJWT基于令牌的无... 目录引言一、JWT基本原理与结构二、Spring Security JWT依赖配置三、JWT令牌生成与

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

SpringSecurity6.0 如何通过JWTtoken进行认证授权

《SpringSecurity6.0如何通过JWTtoken进行认证授权》:本文主要介绍SpringSecurity6.0通过JWTtoken进行认证授权的过程,本文给大家介绍的非常详细,感兴趣... 目录项目依赖认证UserDetailService生成JWT token权限控制小结之前写过一个文章,从S

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES