BJOI 2018 题解
[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=lennsumi−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=lrSn−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=1ksumi
对于在修改区间 [ 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,但 0 只有 0/1 个
- 只有 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 题解相关推荐
- Good Bye 2018题解
Good Bye 2018题解 题解 CF1091A [New Year and the Christmas Ornament] 打完cf都忘记写题解了qwq 题意就是:给你一些黄,蓝,红的球,满足蓝 ...
- [OI]Noip 2018 题解总结(普及)
考砸了,还有原谅我代码十分有限的可读性. 一个人的真正伟大之处就在于他能够认识到自己的渺小.--保罗 从一年前初一九月到现在18年10月接触OI已经有一年了.几次模拟赛也自我感觉良好,都过了一等的线, ...
- Code Chef December Challenge 2018题解
传送门 \(MAXEP\) 二分,不过二分的时候要注意把\(mid\)设成\(\left\lfloor{9l+r\over 10}\right\rfloor\),这样往右的次数不会超过\(6\)次 / ...
- Good Bye 2018 题解
B. New Year and the Treasure Geolocation 我们知道,存在一些排列p,因此对于所有ii,以下都成立: (tx,ty)=(xpi+ai,ypi+bi) 总结一下,我 ...
- 编译原理之LL(1) 、LR(0)、SLR、LR(1)、LALR文法的对比
原创 编译原理之LL(1) .LR(0).SLR.LR(1).LALR文法的对比 2018-01-12 21:42:09 棉花糖灬 阅读数 25323 收起 分类专栏: 那些有趣的知识 版权声明:本文 ...
- 2018ACM-ICPC焦作站E题Resistors in Parallel
Resistors in Parallel 题目: ACM-ICPC Jiaozuo Onsite 2018 题解:因为题目数据范围很大,所以猜测应该是一个区间一个固定的最小值.问题转换成了如何求某个 ...
- 2018 ACM-ICPC Asia Shenyang Regional Contest 题解(9 / 13)【每日亿题2021/2/24】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.(2018 ACM-ICPC Shenyang J)How Much Memory Your ...
- 2018年暑假第四次周赛-图论部分题解
2018年暑假第四次周赛-图论部分题解 A.信我啊,这是签到题 这题是签到题 数据出锅,多组后来补的,后来直接删除了一整个文本.纯属意外. 出签到题难啊,本意是一道题教会17一个模型的.说没学过不该出 ...
- 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)
目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...
最新文章
- java 文件上传 demo_java文件上传Demo
- 加速静态内容访问速度的CDN
- SpringBoot启动解析
- 如何编写优雅的代码:07. 设计模式应用案例(下)
- PostgreSQL 的 target_list分析(五)
- java对List的优雅排序
- 全面整理(随时更新)
- 使用log4net记录日志到数据库(含有自定义属性)
- LeetCode 109. Convert Sorted List to Binary Search Tree
- sopcast安装指南
- kubernets nodeport 无法访问
- 近代物理实验 核磁共振的稳态吸收(含数据及参考题)
- 如何快速提升文章阅读量?
- 有哪些好用的思维导图软件?
- Android 科大讯飞开发相关
- linux centos安装wine qq,centos7下安装wine+QQ成功实例
- 数字IC前端面试问题总结
- Unity手游实战:从0开始SLG——逻辑与表现分离以及实战ECS架构和优化
- 用OpenGL画五角星
- mysql 可以承受多少人_数据库服务器能够承受的最大并发量是多少?
热门文章
- echarts学习——(下)Vue+Echarts构建大数据可视化酷屏展示公司品牌实战项目分享(附源码)
- java通讯链路异常报错_【Java】有了链路日志增强,排查Bug小意思啦!
- Java、泛型方法(Java8版本)
- 值得深读的多年工作经验总结!
- 弃光频现 新能源企业消纳阵痛加剧
- 【c++开篇】浅谈面向对象与面向过程(举例说明)
- java版 东东哥上班东东哥在上班途中, 可以选择走路和骑车两种方式
- 基于微信小程序小区租拼车管理信息系统+后台ssm
- 惠普服务器双系统,惠普笔记本装双系统的小坑
- 卜若的代码笔记-一周搞定树莓派-第二十七章:蓝牙模块