前言

为什么 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. flutter小白是如何在一周内用chatGPT开发一款App的

    创作初衷 这篇文章创作的初衷,只是为了写一个有关日历类的软件供自己使用,考虑到自己从来还没有使用flutter正式创作一个app,因此磨刀霍霍想试一试. 至于为什么要做一款日历软件,因为发现市面上的关 ...

  2. Js中几种循环的使用

    在JavaScript中有五种常用的循环,现在来分别介绍一下五种循环的用法. 1.while 当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环.while语句的一般表达式为:while(表达 ...

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

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

  4. 我真的,AI框架的编程范式怎么理解?

    我给领导汇报AI框架用函数式编程好,没讲明白,说函数式就是写函数那样方便,都被领导吊飞了,啥玩意,写啥不是写函数,狗屁不通! 网上搜说用tensorflow那就是用声明式编程,用pytorch就是命令 ...

  5. 线程池shutdown引发TimeoutException

    问题描述 分享一个发版过程服务报错问题,问题出现在每次发版,服务准备下线的时候,报错的位置是在将任务submit提交给线程池,使用Future.get()引发的TimeoutException,错误日 ...

  6. Jenkins-Pipline实现原理

    Jenkins-Pipline原理 本文仅探讨jenkins pipline 的原理,是流水线的一个demo版本实现,不能代表Jenkins pipline的具体实现,仅供参考. 1. Jenkins ...

  7. NativeBuferring——一种零分配的数据类型[上篇]

    之前一个项目涉及到针对海量(千万级)实时变化数据的计算,由于对性能要求非常高,我们不得不将参与计算的数据存放到内存中,并通过检测数据存储的变化实时更新内存的数据.存量的数据几乎耗用了上百G的内存,再加 ...

  8. 是时候丢掉BeanUtils了

    前言 为了更好的进行开发和维护,我们都会对程序进行分层设计,例如常见的三层,四层,每层各司其职,相互配合.也随着分层,出现了VO,BO,PO,DTO,每层都会处理自己的数据对象,然后向上传递,这就避免 ...

  9. 你知道ES6中的这些属性吗

    ES6,也称ESMAScript2015,这个版本增加了很多好用的特性 变量声明 ES6之前用var来定义变量,ES6增加了两个变量声明的方式,分别为const和let,const用来定义常量,let ...

  10. [minio]挂载minio到本地

    前言 将minio的bucket挂载到本地文件系统 环境 客户端系统版本:centos 7 MinIO节点IP:192.168.0.20 s3fs方式步骤 安装s3fs客户端(可能需要先安装epel- ...