[BJOI2018]求和
可以预处理每一个 k 的答案,树上差分减一下即可
[BJOI2018]治疗之雨
单独写:传送门
[BJOI2018]链上二次求和
枚举 l e n len len, a n s = ∑ l e n = l r ∑ i = l e n n s u m i − s u m i − l e n ans=\sum_{len=l}^r \sum_{i=len}^nsum_i-sum_{i-len} ans=∑len=lr​∑i=lenn​sumi​−sumi−len​
令 sum 的前缀和为 S
a n s = ∑ l e n = l r S n − S l e n − 1 − S n − l e n ans=\sum_{len=l}^rS_n-S_{len-1}-S_{n-len} ans=∑len=lr​Sn​−Slen−1​−Sn−len​
容易想到用线段树什么的维护一下,每次查询 [ l − 1 , r − 1 ] , [ n − r , n − l ] [l-1,r-1],[n-r,n-l] [l−1,r−1],[n−r,n−l]的前缀和的区间和
考虑修改对 S S S 的影响
回到 S 本身的定义 S k = ∑ i = 1 k s u m i S_k=\sum_{i=1}^ksum_i Sk​=∑i=1k​sumi​
对于在修改区间 [ l , r ] [l,r] [l,r] 的 S i S_i Si​,由于 s u m l sum_l suml​ 加了 v v v, s u m l + 1 sum_{l+1} suml+1​ 加了 v ∗ 2 v*2 v∗2 …
所以 S i S_i Si​ 会加上 ( i − l + 1 ) ∗ ( i − l + 2 ) ∗ v 2 \frac{(i-l+1)*(i-l+2)*v}{2} 2(i−l+1)∗(i−l+2)∗v​
对于在 [ r + 1 , n ] [r+1,n] [r+1,n] 的 S i S_i Si​,由于 [ r + 1 , n ] [r+1,n] [r+1,n] 的 s u m i sum_i sumi​ 每个都加了 l e n ∗ v len*v len∗v
所以 S i S_i Si​ 会加上 l e n ∗ ( l e n + 1 ) ∗ v 2 + ( i − r ) ∗ l e n ∗ v \frac{len*(len+1)*v}{2}+(i-r)*len*v 2len∗(len+1)∗v​+(i−r)∗len∗v
所以线段树直接维护 i , i 2 i,i^2 i,i2 的系数,以及常数项的系数

[BJOI2018]二进制
一道神仙动态dp
考虑哪些序列可以被排列成 3 的倍数
首先,二进制的奇数为模3余1,偶数位余2,也就是说要满足奇数为偶数位相同,或者在多出来 3 的倍数个1,考虑在长度为 len 的区间放 k 个 1,len - k 个 0
如果 k 是 偶数,那么可以匹配着放
如果 k 是 奇数,那么只能将 k - 3 匹配着放,如果 k = 1就凉了
于此同时,发现 3 个 1 直接至少要插 2 个 0,于是如果 0 是 0/1 的话也凉了
发现凉凉的情况比较好统计,于是用全部区间 - 凉凉区间
重新整理一下凉凉的定义:

  1. 有奇数个 1,但 0 只有 0/1 个
  2. 只有 1 个 1

等等,好像有点重复,我们把第2个改成只有一个 1,且 0 的次数 >=2 就不会重了
考虑如何合并两个端点,用 d l [ 0 / 1 ] [ 0 / 1 ] dl[0/1][0/1] dl[0/1][0/1] 强制从左端点开始选,有 0/1 个 0, 1 的奇偶性的区间个数
f l [ 0 / 1 / 2 ] fl[0/1/2] fl[0/1/2] 表示强制从左端点开始选,1 只有一次,0 的个数为 0 / 1 / > = 2 0/1/>=2 0/1/>=2,的区间个数
然后还要维护连续的 0 的个数以及区间 0/1 个数,最后就是恶心的 p u s h u p pushup pushup

BJOI 2018 题解相关推荐

  1. Good Bye 2018题解

    Good Bye 2018题解 题解 CF1091A [New Year and the Christmas Ornament] 打完cf都忘记写题解了qwq 题意就是:给你一些黄,蓝,红的球,满足蓝 ...

  2. [OI]Noip 2018 题解总结(普及)

    考砸了,还有原谅我代码十分有限的可读性. 一个人的真正伟大之处就在于他能够认识到自己的渺小.--保罗 从一年前初一九月到现在18年10月接触OI已经有一年了.几次模拟赛也自我感觉良好,都过了一等的线, ...

  3. Code Chef December Challenge 2018题解

    传送门 \(MAXEP\) 二分,不过二分的时候要注意把\(mid\)设成\(\left\lfloor{9l+r\over 10}\right\rfloor\),这样往右的次数不会超过\(6\)次 / ...

  4. Good Bye 2018 题解

    B. New Year and the Treasure Geolocation 我们知道,存在一些排列p,因此对于所有ii,以下都成立: (tx,ty)=(xpi+ai,ypi+bi) 总结一下,我 ...

  5. 编译原理之LL(1) 、LR(0)、SLR、LR(1)、LALR文法的对比

    原创 编译原理之LL(1) .LR(0).SLR.LR(1).LALR文法的对比 2018-01-12 21:42:09 棉花糖灬 阅读数 25323 收起 分类专栏: 那些有趣的知识 版权声明:本文 ...

  6. 2018ACM-ICPC焦作站E题Resistors in Parallel

    Resistors in Parallel 题目: ACM-ICPC Jiaozuo Onsite 2018 题解:因为题目数据范围很大,所以猜测应该是一个区间一个固定的最小值.问题转换成了如何求某个 ...

  7. 2018 ACM-ICPC Asia Shenyang Regional Contest 题解(9 / 13)【每日亿题2021/2/24】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.(2018 ACM-ICPC Shenyang J)How Much Memory Your ...

  8. 2018年暑假第四次周赛-图论部分题解

    2018年暑假第四次周赛-图论部分题解 A.信我啊,这是签到题 这题是签到题 数据出锅,多组后来补的,后来直接删除了一整个文本.纯属意外. 出签到题难啊,本意是一道题教会17一个模型的.说没学过不该出 ...

  9. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

最新文章

  1. java 文件上传 demo_java文件上传Demo
  2. 加速静态内容访问速度的CDN
  3. SpringBoot启动解析
  4. 如何编写优雅的代码:07. 设计模式应用案例(下)
  5. PostgreSQL 的 target_list分析(五)
  6. java对List的优雅排序
  7. 全面整理(随时更新)
  8. 使用log4net记录日志到数据库(含有自定义属性)
  9. LeetCode 109. Convert Sorted List to Binary Search Tree
  10. sopcast安装指南
  11. kubernets nodeport 无法访问
  12. 近代物理实验 核磁共振的稳态吸收(含数据及参考题)
  13. 如何快速提升文章阅读量?
  14. 有哪些好用的思维导图软件?
  15. Android 科大讯飞开发相关
  16. linux centos安装wine qq,centos7下安装wine+QQ成功实例
  17. 数字IC前端面试问题总结
  18. Unity手游实战:从0开始SLG——逻辑与表现分离以及实战ECS架构和优化
  19. 用OpenGL画五角星
  20. mysql 可以承受多少人_数据库服务器能够承受的最大并发量是多少?

热门文章

  1. echarts学习——(下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)
  2. java通讯链路异常报错_【Java】有了链路日志增强,排查Bug小意思啦!
  3. Java、泛型方法(Java8版本)
  4. 值得深读的多年工作经验总结!
  5. 弃光频现 新能源企业消纳阵痛加剧
  6. 【c++开篇】浅谈面向对象与面向过程(举例说明)
  7. java版 东东哥上班东东哥在上班途中, 可以选择走路和骑车两种方式
  8. 基于微信小程序小区租拼车管理信息系统+后台ssm
  9. 惠普服务器双系统,惠普笔记本装双系统的小坑
  10. 卜若的代码笔记-一周搞定树莓派-第二十七章:蓝牙模块