【原题出处不详】有这样一种整形数组,长度为偶数,奇数位的值表示某线段起点,偶数位的值表示相应线段的终点(比如,数组{0,1,3,6}表示两个线段,第一条线段起点为0终点为1,第二条起点为3,终点为6),现有任意两组线段A和B,求一算法计算A和B所表示的线段之间公共区域的长度(各组线段本身也可能包含重叠区域)

最初解题时,思路走偏了,想着先整理组内的线段,再去除重叠并分离线段,使得整理后的组内线段互不相交,然后求出组内线段总长度a和b,接着再合并A和B组的线段,类似地求取合并后的总长度c,于是重叠部分d=a+b-c,但是,代码着实有点冗长。

最近有机会温习集合论方面的一些知识,看到了多个集合求并集的方法:http://en.wikipedia.org/wiki/Inclusion%E2%80%93exclusion_principle,就想应该可以应用在上面这道题上,可以大大简化计算过程。

求N个线段的总长度,就简化为枚举N个线段的各种组合(2的N次方种),然后求当前组合下的M条被选中的线段之间的公共区域长度L。初始化ans为0,根据并集公式,如果M为奇数,则ans加上L,如果M为偶数,则ans减去L,最后枚举完毕后,ans就为所求的N条线段的总长度。由此方

Common Part相关推荐

  1. 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...

    问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...

  2. PCL common中常见的基础功能函数

    这里将分享我使用PCL库的遇到的一些坑,以及总结的技巧,当然也需要各位能够多多分享,将公众号的文章或者知识星球的文章转发到朋友圈. pcl_common中主要是包含了PCL库常用的公共数据结构和方法, ...

  3. HDU 4913 Least common multiple

    /* hdu4913 Least common multiple http://acm.hdu.edu.cn/showproblem.php?pid=4913 离散化 线段树 统计逆序数思想 tips ...

  4. Caffe源码中common文件分析

    Caffe源码(caffe version:09868ac , date: 2015.08.15)中的一些重要头文件如caffe.hpp.blob.hpp等或者外部调用Caffe库使用时,一般都会in ...

  5. 【js】common.jsp的使用

    通过将引入common.jsp将所有文件都需要的内容或静态资源引入,相当于一个页面,在页面被编译之前合并. 代码实现 <%@ include file = "common.jsp的相对 ...

  6. Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

    异常Log: Error:Execution failed for task ':app:dexDebug'.  > com.android.ide.common.process.Process ...

  7. print_r() 'ThinkPHP\Common\common.php 601

    Fatal error: print_r() [<a href='ref.outcontrol'>ref.outcontrol</a>]: Cannot use output ...

  8. 动态规划—最长公共子序列问题 HDU-1159 Common Subsequence

    动态规划-最长公共子序列问题 Common Subsequence [ HDU - 1159 ] A subsequence of a given sequence is the given sequ ...

  9. 面试官问:对象池技术了解吗?apache common pool2呢?

    欢迎关注方志朋的博客,回复"666"获面试宝典 对象池顾名思义就是存放对象的池,与我们常听到的线程池.数据库连接池.http连接池等一样,都是典型的池化设计思想. 对象池的优点就是 ...

  10. git: No refs in common and none specified; doing no

    创建新项目,clone后首次push,出现 $ git push No refs in common and none specified; doing nothing. Perhaps you sh ...

最新文章

  1. 设置cisco登录时显示的警示性信息-banner
  2. Spring component-scan类扫描加载过程
  3. 【LaTeX】E喵的LaTeX新手入门教程(4)图表
  4. 解决win 10 vscode 打开后白屏问题
  5. 数据结构 - 哈希表(用数组+链表实现存储员工信息,添加增删查功能)
  6. linux选择usb功能,USB gadget设备驱动解析(1)——功能体验
  7. scannet数据集和shapenet、modelnet等数据集的名称和标签对应关系
  8. DB2中使用Excel文件数据转CSV格式后导入数据库
  9. texstudio自动拼写检测_飞桨PaddleDetection物体检测统一框架详解
  10. Spark Tungsten揭秘 Day3 内存分配和管理内幕
  11. 动态规划实战3-leetcode 55.Jump Game
  12. python 成语库_python正则表达式抓取成语网站
  13. 通过模板生成Excel表格——XLSTransformer
  14. 微信小程序支付宝小程序合并二维码
  15. python 生意参谋操作
  16. Erstudio8.0怎么用?Erstudio8.0汉化版详细使用教程
  17. vi不保存退出的命令
  18. 【Love2d从青铜到王者】第十六篇:Love2d之动画(Animation)
  19. 20172301 2017-2018-2 《程序设计与数据结构》第六周学习总结
  20. 最新消息:原谷歌中国副院长刘骏任职人民搜索首席科学家

热门文章

  1. kvm常见故障及解决
  2. WSAStartup() 详解
  3. 什么是xxl-job(1)
  4. 计算机和回收站桌面快捷方式,电脑桌面的回收站快捷方式被我删掉了,要如何恢复?...
  5. SQL注入 安全狗apache3.5.12048版本绕过
  6. scrapy爬取起点中文网24小时热销榜单(将数据存到数据库)
  7. 飞机座位数根据订单数自减
  8. 用Annovar注释非人类基因组,如小鼠mm9
  9. 106码号办理需要具备的条件和需要的材料
  10. 图像分割之——U-Net实现