前言

为什么 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)\) 时的最少花费,那么有:

\[f_{i-1,a,b,c,d,e}+w_i\to f_{i,P(a+A_i),P(b+B_i),P(c+C_i),P(d+D_i),P(e+E_i)}
\]

其中,\(P(x)=\min(p,x)\),\((A,B,C,D,E)\) 为第 \(i\) 个计划能增加的参数。

值得注意的是,还有一个继承转移,即:

\[f_{i,a,b,c,d,e}\gets f_{i-1,a,b,c,d,e}
\]

所求即 \(f_{n,p,p,p,p,p}\)。

小技巧:可以将计划缺少的参数统一设为 \(p\)。

赛后代码

F

模板题 & 原题。

用线段树维护,在每个节点维护:

  • \(sum\):区间和。

  • \(len\):区间长度。

  • \(lsum0\):从左端起最长 \(0\) 段的长度。

  • \(lsum1\):从左端起最长 \(1\) 段的长度。

  • \(rsum0\):从右段起最长 \(0\) 段的长度。

  • \(rsum1\):从右段起最长 \(1\) 段的长度。

  • \(max0\):区间内最长 \(0\) 段的长度。

  • \(max1\):区间内最长 \(1\) 段的长度。

  • \(tag\):区间翻转标记。

容易写成合并式:

\[\boxed{\begin{aligned}sum&=sum_{ls}+sum_{rs}\\
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 题解的更多相关文章

  1. AtCoder Beginner Contest 238 A - F 题解

    AtCoder Beginner Contest 238 \(A - F\) 题解 A - Exponential or Quadratic 题意 判断 \(2^n > n^2\)是否成立? S ...

  2. Educational Codeforces Round 61 (Rated for Div. 2) D,F题解

    D. Stressful Training 题目链接:https://codeforces.com/contest/1132/problem/D 题意: 有n台电脑,每台电脑都有初始电量ai,也有一个 ...

  3. 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 ...

  4. 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 ...

  5. 牛客练习赛60 A—F题解(缺E题)

    本蒟蒻这次只过了三题 赛后学习了一下出题人巨佬的标码(码风比我好多了 贴的代码有些是仿出题人)现在将自己的理解写下来与大家分享 A这个题一分析就是每个数字都会与所有数字&一下 (a&a ...

  6. [题解] Codeforces Global Round 22 1738 A B C D E F 题解

    很久没rated打过cf的比赛了,这次打得还行,至少进前100了 点我看题 A. Glory Addicts 把类型0的数放进数组a里,类型1的数放进数组b里.如果\(|a|=|b|\),你可以把所有 ...

  7. Codeforces #Round 376 F 题解

    F. Video Cards time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. 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 ...

  9. Codeforces 1038F Wrap Around (Codeforces Round #508 (Div. 2) F) 题解

    写在前面 此题数据量居然才出到\(n=40\)???(黑人问号)以下给出一个串长\(|S|=100,n=10^9\)的题解. 题目描述 给一个长度不超过\(m\)的01串S,问有多少个长度不超过\(n ...

  10. csps模拟68d,e,f题解

    题面:https://www.cnblogs.com/Juve/articles/11655531.html 三道数据结构? d: 贪心,先按a排序,然后枚举删了前i个a值比较小的,然后在剩下的里面删 ...

随机推荐

  1. C++面试八股文:用过std::set/std::map吗?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第27面: 面试官:用过std::set/std::map吗? 二师兄:用过. 面试官:能介绍一下二者吗? 二师兄:std::set是一个有序的集合, ...

  2. redis雪崩问题解决

    缓存雪崩 出现的场景 缓存服务器宕机,没有设置持久化 介绍:缓存服务器宕机,没有设置持久化,导致缓存数据全部丢失,请求全部转发到数据库,造成数据库短时间内承受大量请求而崩掉. 缓存集中失效 缓存的ke ...

  3. FFmpeg+SDL实时解码和渲染H264视频流

    前言 之前实现了Android手机摄像头数据的TCP实时传输,今天接着聊聊,如何在PC端把接收到的H264视频流实时解码并渲染出来.这次使用的语言是C++,框架有FFmpeg和SDL2. 解码 解码部 ...

  4. Python中 sys.argv[]用法详解

    sys.argv[0]表示代码本身文件路径. sys.argv[]是一个从程序外部获取参数的桥梁,从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一 ...

  5. Java IO流 - 字节流的使用详细介绍

    IO流的基本介绍: IO流的概述: i 表示intput,是数据从硬盘文件读入到内存的过程,称之输入,负责读. o 表示output,是内存程序的数据从内存到写出到硬盘文件的过程,称之输出,负责写. ...

  6. 10/29/2017_C语言_三道题

    1. 用标准C编程:找出整形数字1-100之间的素数,并打印出来.(素数:除了1和自己本身可以被整除.) 2. 用标准C编程:有两个整形变量m.n,求出这两个数的最小公倍数. 3. 用标准C编程:输出 ...

  7. PWM点灯

    目录 PWM脉冲宽调点灯 前言 1.什么是PWM 2.PWM的实现 3.PWM实现步骤(通用定时器) 3.1 打开定时器的时钟 3.2 配置端口 3.3 设置定时器 3.4 设置PWM 3.5 完整代 ...

  8. Win32API中的宽字符

    4.1了解什么是Win32API Win32API就是windows操作系统提供给我们的函数(应用程序接口),其主要存放在C:\Windows\System32 (存储的DLL是64位).C:\Win ...

  9. 【WebGL系列-02】创建program上下文

    WebGL程序program对象的创建 program对象由顶点着色器对象和片元着色器对象构成,因此,创建program对象包含了两部分,一个是着色器对象的创建,一个是program对象的创建. 总体 ...

  10. Lite-Mono(CVPR2023)论文解读

    Lite-Mono: A Lightweight CNN and Transformer Architecture for Self-Supervised Monocular Depth Estima ...