传送门

NowCoder

Solution

考虑一下看到这种区间或与区间与的关系,拆一下位。
令\(s_i\)表示前缀和,则:
那么如果现在考虑到了第\(i\)为,有如下4种可能:

  • \(opt=1\),\(x\)在\(i\)这位有值,那么就有\(s_r-s_{l-1} \ge 1\)
  • \(opt=1\),\(x\)在\(i\)这位没值,那么就有\(s_r-s_{l-1} = 0\)
  • \(opt=2\),\(x\)在\(i\)这位有值,那么就有\(s_r-s_{l-1} = r-l+1\)
  • \(opt=2\),\(x\)在\(i\)这位没值,那么就有\(s_r-s_{l-1} \leq r-l\)
  • \(s_i>=s_{i-1}\),因为值只有\(0,1\),所以前缀和一定会有这个性质。

所以发现这个就可以差分约束,然后随便搞一下你就发现,只有80pts!!!
80pts代码实现

咦,这是为什么啊?
然后考虑如果一段区间的&是1,显然这一段都是1,所以就可以快速差分然后连边了,这样子,据\(yyb\)说可以加快...

代码实现

代码戳这里

最新文章

  1. Java界面设计 Swing(1)
  2. iOS 私有变量 私有方法
  3. 树链剖分+线段树 HDOJ 4897 Little Devil I(小恶魔)
  4. ASP.NET MVC3的学习
  5. centos 6 cglib
  6. Zxing兼容2.3等低版本
  7. android自定义控件(2)-拖拽实现开关切换
  8. FIFO跨时钟域读写
  9. Ul li 横排 菜单
  10. IIS提示Server Application Unavailable
  11. codevs 1519 过路费 最小生成树+倍增
  12. java编译期优化与执行期优化技术浅析
  13. ansible 判断和循环
  14. NancyFX 第八章 内容协商
  15. JDBC学习笔记 day1
  16. python3 员工信息表
  17. 非阻塞读和写:str_cli函数
  18. java集合的复习
  19. CISCO 关闭4786端口解决方法
  20. Netty 核心组件笔记

热门文章

  1. leetcode98
  2. component lists rendered with v-for should have explicit keys
  3. LevelDB源码分析-Get
  4. Java学习笔记(二十一):类型转换和instanceof关键字
  5. 解题(TakeBusChooseLine)
  6. 【笔记】计算机原理,网络,Linux操作系统
  7. redis在windows系统下的安装和两个问题
  8. 【转】GT 的性能测试方案解析
  9. eclipse删除了文件,找回方法
  10. 742. Closest Leaf in a Binary Tree查找最近的叶子节点