ABC322 A-F 题解
前言
为什么 ABC 天天出原题。
为什么 D 题这么答辩。
A
直接找。
B
模拟。
C
对于每一个节日从后往前扫到上一个节日。
D
搜索,不需要任何剪枝,直接爆搜。
时间复杂度应该是 \(O((kn^2)^3)\),其中 \(n=2m-1,k=4\),\(m\) 是地图大小,其值为 \(4\),\(k\) 是方向系数,为 \(4\)。
写起来比较麻烦,但没有技术含量。
E
五维背包,设 \(f_{i,a,b,c,d,e}\) 表示考虑前 \(i\) 个计划,当前的参数为 \((a,b,c,d,e)\) 时的最少花费,那么有:
\]
其中,\(P(x)=\min(p,x)\),\((A,B,C,D,E)\) 为第 \(i\) 个计划能增加的参数。
值得注意的是,还有一个继承转移,即:
\]
所求即 \(f_{n,p,p,p,p,p}\)。
小技巧:可以将计划缺少的参数统一设为 \(p\)。
F
模板题 & 原题。
用线段树维护,在每个节点维护:
\(sum\):区间和。
\(len\):区间长度。
\(lsum0\):从左端起最长 \(0\) 段的长度。
\(lsum1\):从左端起最长 \(1\) 段的长度。
\(rsum0\):从右段起最长 \(0\) 段的长度。
\(rsum1\):从右段起最长 \(1\) 段的长度。
\(max0\):区间内最长 \(0\) 段的长度。
\(max1\):区间内最长 \(1\) 段的长度。
\(tag\):区间翻转标记。
容易写成合并式:
len&=len_{ls}+len_{rs}\\
max0&=\max(max0_{ls},max0_{rs},rsum0_{ls}+lsum0_{rs})\\
max1&=\max(max1_{ls},max1_{rs},rsum1_{ls}+rsum0_{rs})\\
lsum0&=\begin{cases}lsum0_{ls}&sum_{ls}\not=0\\len_{ls}+lsum0_{rs}&sum_{ls}=0\end{cases}\\
lsum1&=\begin{cases}lsum1_{ls}&sum_{ls}\not=len_{ls}\\len_{ls}+lsum1_{rs}&sum_{ls}=len_{ls}\end{cases}\\
rsum0&=\begin{cases}rsum0_{rs}&sum_{rs}\not=0\\len_{rs}+rsum0_{ls}&sum_{rs}= 0\end{cases}\\
rsum1&=\begin{cases}rsum1_{rs}&sum_{rs}\not=len_{rs}\\len_{rs}+rsum1_{ls}&sum_{rs}=len_{rs}\end{cases}\\
\end{aligned}}\]
(可能看着比较多,其实很简单)
单节点更新只需要将 \(max0,max1,lsum0,lsum1,rsum0,rsum1\) 成对交换,再更新一下区间和和 \(tag\) 就行了。
ABC322 A-F 题解的更多相关文章
- AtCoder Beginner Contest 238 A - F 题解
AtCoder Beginner Contest 238 \(A - F\) 题解 A - Exponential or Quadratic 题意 判断 \(2^n > n^2\)是否成立? S ...
- Educational Codeforces Round 61 (Rated for Div. 2) D,F题解
D. Stressful Training 题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有n台电脑,每台电脑都有初始电量ai,也有一个 ...
- CF 1132A,1132B,1132C,1132D,1132E,1132F(Round 61 A,B,C,D,E,F)题解
A.Regular bracket sequence A string is called bracket sequence if it does not contain any characters ...
- CF 1131A,1131B,1131C,1131D,1131F(Round541 A,B,C,D,F)题解
A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 牛客练习赛60 A—F题解(缺E题)
本蒟蒻这次只过了三题 赛后学习了一下出题人巨佬的标码(码风比我好多了 贴的代码有些是仿出题人)现在将自己的理解写下来与大家分享 A这个题一分析就是每个数字都会与所有数字&一下 (a&a ...
- [题解] Codeforces Global Round 22 1738 A B C D E F 题解
很久没rated打过cf的比赛了,这次打得还行,至少进前100了 点我看题 A. Glory Addicts 把类型0的数放进数组a里,类型1的数放进数组b里.如果\(|a|=|b|\),你可以把所有 ...
- Codeforces #Round 376 F 题解
F. Video Cards time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Codeforces Round #277.5 (Div. 2) A,B,C,D,E,F题解
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud A. SwapSort time limit per test 1 seco ...
- Codeforces 1038F Wrap Around (Codeforces Round #508 (Div. 2) F) 题解
写在前面 此题数据量居然才出到\(n=40\)???(黑人问号)以下给出一个串长\(|S|=100,n=10^9\)的题解. 题目描述 给一个长度不超过\(m\)的01串S,问有多少个长度不超过\(n ...
- csps模拟68d,e,f题解
题面:https://www.cnblogs.com/Juve/articles/11655531.html 三道数据结构? d: 贪心,先按a排序,然后枚举删了前i个a值比较小的,然后在剩下的里面删 ...
随机推荐
- C++面试八股文:用过std::set/std::map吗?
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: 面试官:用过std::set/std::map吗? 二师兄:用过. 面试官:能介绍一下二者吗? 二师兄:std::set是一个有序的集合, ...
- redis雪崩问题解决
缓存雪崩 出现的场景 缓存服务器宕机,没有设置持久化 介绍:缓存服务器宕机,没有设置持久化,导致缓存数据全部丢失,请求全部转发到数据库,造成数据库短时间内承受大量请求而崩掉. 缓存集中失效 缓存的ke ...
- FFmpeg+SDL实时解码和渲染H264视频流
前言 之前实现了Android手机摄像头数据的TCP实时传输,今天接着聊聊,如何在PC端把接收到的H264视频流实时解码并渲染出来.这次使用的语言是C++,框架有FFmpeg和SDL2. 解码 解码部 ...
- Python中 sys.argv[]用法详解
sys.argv[0]表示代码本身文件路径. sys.argv[]是一个从程序外部获取参数的桥梁,从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一 ...
- Java IO流 - 字节流的使用详细介绍
IO流的基本介绍: IO流的概述: i 表示intput,是数据从硬盘文件读入到内存的过程,称之输入,负责读. o 表示output,是内存程序的数据从内存到写出到硬盘文件的过程,称之输出,负责写. ...
- 10/29/2017_C语言_三道题
1. 用标准C编程:找出整形数字1-100之间的素数,并打印出来.(素数:除了1和自己本身可以被整除.) 2. 用标准C编程:有两个整形变量m.n,求出这两个数的最小公倍数. 3. 用标准C编程:输出 ...
- PWM点灯
目录 PWM脉冲宽调点灯 前言 1.什么是PWM 2.PWM的实现 3.PWM实现步骤(通用定时器) 3.1 打开定时器的时钟 3.2 配置端口 3.3 设置定时器 3.4 设置PWM 3.5 完整代 ...
- Win32API中的宽字符
4.1了解什么是Win32API Win32API就是windows操作系统提供给我们的函数(应用程序接口),其主要存放在C:\Windows\System32 (存储的DLL是64位).C:\Win ...
- 【WebGL系列-02】创建program上下文
WebGL程序program对象的创建 program对象由顶点着色器对象和片元着色器对象构成,因此,创建program对象包含了两部分,一个是着色器对象的创建,一个是program对象的创建. 总体 ...
- Lite-Mono(CVPR2023)论文解读
Lite-Mono: A Lightweight CNN and Transformer Architecture for Self-Supervised Monocular Depth Estima ...