首页 > 其他分享 >AT318 A-G 题解

AT318 A-G 题解

时间:2023-09-04 19:44:06浏览次数:46  
标签:AT318 赛时 题解 代码 times 入点 出点 text

A

枚举 \(1\sim n\) 的每个数,判断是否有 \(i-M\equiv 0\pmod P\) 即可。

赛时代码

B

暴力覆盖即可,注意 \(x,y\) 均是左开右闭。

赛时代码

C

贪心的想,如果要替换 \(i\) 项,那必然是替换最大的 \(i\) 项,因此只需要对 \(f\) 排序,预处理后缀和后再扫一遍取替换前 \(i\) 项的最小值即可。

赛时代码

D

状压 DP,设 \(f_s\) 表示选择若干边的最大价值,使得 \(s\) 状态中的所有点都被选择,那么可以得到转移方程:

\[f_s=\max_{1\le i< j\le n,i\in s,j\in s}(f_{s-\{i\}-\{j\}}+w_{i,j}) \]

赛时代码

E

对于不同的值分别考虑,设当前考虑的值为 \(i\),我们考虑一对在序列中相邻的值,其下标分别为 \(l,r\),那么它对 \(i\) 产生的贡献为:

\[(r-l-1)\times \text{lnum}\times \text{rnum} \]

其中,\(\text{lnum}\) 表示在 \(l\) 左侧的值为 \(i\) 的数的个数,\(\text{rnum}\) 表示在 \(r\) 右侧的数的个数。

再将所有贡献累加即可。

(注意边界)

赛时代码

F

我们考虑可行性发生变化的点,也就是说,我们需要找出所有满足 在这个点可行,在这个点左侧或右侧不可行 的所有点,容易发现,这样的点的数量是 \(O(n^2)\) 的,且一定等于 \(X_i\pm L_j\)。

所以我们可以将所有的 \(X_i\pm L_j\) 排序,如果两个相邻的点都可行,那么这两个点之间的区间都可行。

因此,我们只对所有这样的点进行一遍暴力 \(O(n\log n)\) 的 check,总时间复杂度为 \(O(n^3\log n)\)。

(还有一些 \(\pm 1\) 的边界问题需要注意)

赛后代码

G

考虑网络流,先将所有点拆成入点和出点,入点向出点连流量为 \(1\) 的边,对于原图中的边 \(e=(u,v)\),从 \(u\) 的出点向 \(v\) 的入点,\(v\) 的出点向 \(u\) 的入点连流量为 \(+\infty\) 的边。再从源点向 \(B\) 连流量为 \(2\) 的边,\(A,C\) 向汇点连流量为 \(1\) 的边,跑一遍 dinic,只需要判断最大流是否为 \(2\) 即可。(注意 \(B\) 的入点向出点连边权为 \(2\) 的边)

由于 dinic 一次增广最大流至少增加 \(1\),而最大流至多为 \(2\),故最多只需要增广两次,也就是只会进行 \(2\) 遍 bfs 和 dfs,因此时间复杂度是 \(O(n)\) 的。

(空间要开到 \(1.2\times 10^6\))

赛后代码

标签:AT318,赛时,题解,代码,times,入点,出点,text
From: https://www.cnblogs.com/TKXZ133/p/17677932.html

相关文章

  • 湖北省选模拟 2023 部分题解
    质量不错。为什么湖北会有这么hard的省选啊/fn。D1T1\(\color{Gold}\bigstar\)第一题就不会是我没想到的。考虑一下简单情况,一条链咋做,每次操作相当于把一个空隙的大小减小\(2\),因此可以进行一个dp。具体咋dp,先咕。然后考虑只有一个环咋做,如果是偶环,那么肯定是一直操......
  • 【 LeetCode题解 】203. 移除链表元素
    【LeetCode题解】203.移除链表元素题目链接:https://leetcode.cn/problems/remove-linked-list-elements/博客主页链接:DuckBro博客主页关注博主,后期持续更新系列文章***感谢观看,希望对你有所帮助***目录【LeetCode题解】203.移除链表元素......
  • Xcode,swift:Error Domain=kCLErrorDomain Code=1 "(null)"问题解决
    问题描述:iOS开发时,当使用用户的位置权限时,获取用户经纬度报错:ErrorDomain=kCLErrorDomainCode=1"(null)",错误域=kCLError域代码=1“(null)”解决方法:打开模拟机的设置-通用-语言与地区将地区设置为中国(如果你的开发位置在中国的话) 点击左上方Features,选择Locati......
  • 网络规划设计师真题解析--交换机(一)(STP选择过程)
    下图所示是一个园区网的一部分,交换机A和B是两台接入层设备,交换机C和D组成核心层,交换机E将服务器群连接至核心层。如图所示,(2014年真题)如果采用默认的STP设置和默认的选举过程,其生成树的最终结果为(1),ABCD这时候交换机B上的一台工作站,想要访问交换机E上的服务器的路径是(2),A.B-D-E......
  • SqlServer2000数据库迁移"用户已存在"问题解决
    作者:fbysss关键字:sqlserver数据库用户,关联缺失背景:数据库从另外一台服务器备份之后还原,发现程序中登录数据库失败。排查:发现"安全性"->"登录"中的数据库用户与数据库没有关联,但是手工再关联,却报出错误21002:[sql-dmo]用户***已经存在的异常信息。而删除该数据库用户也无法进行,因为......
  • 洛谷P3808 【模板】AC 自动机(简单版)题解 AC自动机模板题
    题目链接:https://www.luogu.com.cn/problem/P3808AC自动机模板题。示例程序:#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e6+5;structNode{intson[26],fail,id;Node(){}Node(int_id){memset(son,0,sizeof(son));......
  • 【牛客周赛 Round 10】A-D题解
    Ahttps://ac.nowcoder.com/acm/contest/64272/A题意游游定义一个数组为“稳定的”,当且仅当数组相邻的两个元素之差的绝对值不超过1。例如[2,3,2,2,1]是稳定的,而[1,3,2]则不是稳定的。游游拿到了一个数组,她想求出该数组的最长的“稳定的”连续子数组的长度。题解首先,如果在某......
  • CF786c分块题解
    CF786c分块题解思路:首先思考一下如果直接硬着头皮做会怎么样?对于每一个k,我都要遍历一遍数组贪心求解ans,导致n方时间复杂度要发现一下性质:答案最多为ceil(n/k)。随着k的增加,答案单调不增。随着k的增加,答案越不容易改变(连续相同的答案越多)。由1可知,总共的答案数量大概......
  • 8.30 模拟赛 光和影(dream) 题解
    概括:大分类讨论。首先有个重要结论,无论是三种操作中的哪一种,他的左儿子仍然在他的左子树内,右儿子在右子树内。同时,旋转一个点一次,对他更上面的点的深度没有影响。以此,我们预处理出一个\(up_{u,0/1}\)表示将\(u\)splay到根上,对左子树和右子树深度的影响,由于上面的结论,这个东......
  • CF838D Airplane Arrangements 题解
    题意一架飞机有\(n\)个座位排成一列,有\(m\)名乘客(\(m\leqn\))依次上飞机。乘客会选择一个目标座位(两人可以选同一个目标座位),然后选择从前门或者后门上飞机,上飞机后,他们会走到自己的目标座位,如果目标座位已经有人坐了,他们会继续往前走,在走到第一个空位后坐下。如果走到最后......