Common Part
【原题出处不详】有这样一种整形数组,长度为偶数,奇数位的值表示某线段起点,偶数位的值表示相应线段的终点(比如,数组{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相关推荐
- 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...
问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...
- PCL common中常见的基础功能函数
这里将分享我使用PCL库的遇到的一些坑,以及总结的技巧,当然也需要各位能够多多分享,将公众号的文章或者知识星球的文章转发到朋友圈. pcl_common中主要是包含了PCL库常用的公共数据结构和方法, ...
- HDU 4913 Least common multiple
/* hdu4913 Least common multiple http://acm.hdu.edu.cn/showproblem.php?pid=4913 离散化 线段树 统计逆序数思想 tips ...
- Caffe源码中common文件分析
Caffe源码(caffe version:09868ac , date: 2015.08.15)中的一些重要头文件如caffe.hpp.blob.hpp等或者外部调用Caffe库使用时,一般都会in ...
- 【js】common.jsp的使用
通过将引入common.jsp将所有文件都需要的内容或静态资源引入,相当于一个页面,在页面被编译之前合并. 代码实现 <%@ include file = "common.jsp的相对 ...
- 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 ...
- print_r() 'ThinkPHP\Common\common.php 601
Fatal error: print_r() [<a href='ref.outcontrol'>ref.outcontrol</a>]: Cannot use output ...
- 动态规划—最长公共子序列问题 HDU-1159 Common Subsequence
动态规划-最长公共子序列问题 Common Subsequence [ HDU - 1159 ] A subsequence of a given sequence is the given sequ ...
- 面试官问:对象池技术了解吗?apache common pool2呢?
欢迎关注方志朋的博客,回复"666"获面试宝典 对象池顾名思义就是存放对象的池,与我们常听到的线程池.数据库连接池.http连接池等一样,都是典型的池化设计思想. 对象池的优点就是 ...
- 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 ...
最新文章
- 设置cisco登录时显示的警示性信息-banner
- Spring component-scan类扫描加载过程
- 【LaTeX】E喵的LaTeX新手入门教程(4)图表
- 解决win 10 vscode 打开后白屏问题
- 数据结构 - 哈希表(用数组+链表实现存储员工信息,添加增删查功能)
- linux选择usb功能,USB gadget设备驱动解析(1)——功能体验
- scannet数据集和shapenet、modelnet等数据集的名称和标签对应关系
- DB2中使用Excel文件数据转CSV格式后导入数据库
- texstudio自动拼写检测_飞桨PaddleDetection物体检测统一框架详解
- Spark Tungsten揭秘 Day3 内存分配和管理内幕
- 动态规划实战3-leetcode 55.Jump Game
- python 成语库_python正则表达式抓取成语网站
- 通过模板生成Excel表格——XLSTransformer
- 微信小程序支付宝小程序合并二维码
- python 生意参谋操作
- Erstudio8.0怎么用?Erstudio8.0汉化版详细使用教程
- vi不保存退出的命令
- 【Love2d从青铜到王者】第十六篇:Love2d之动画(Animation)
- 20172301 2017-2018-2 《程序设计与数据结构》第六周学习总结
- 最新消息:原谷歌中国副院长刘骏任职人民搜索首席科学家