2021.04.03-2021.04.04 省选模拟 总结

2023-05-16

地址

Day 1 : https://gmoj.net/senior/#contest/home/3355

Day 2 : https://gmoj.net/senior/#contest/home/3356

总结

两天都考得不好,都只有 25 25 25 分。

Day 1

先看题,觉得 T 1 T1 T1 有两个性质:

  1. 每个棋子的运动是相互独立的,因此可以先预处理出如果在某个位置上放一个棋子, Alice 可以领先 Bob 多少步;
  2. 只要看两个人最后谁领先对方的步数更多即可判断输赢。

但是我以为步数存在 “借用” 的情况:即假设 Alice 一开始比 Bob 领先 k k k 步。对于一个棋子,即便它在运动的过程中会造成暂时的 Alice 被 Bob 领先,只要这个步数小于 k k k (也就是这个时候 Alice 还是比 Bob 领先的),都可以继续动。如果最后让 Alice 比 Bob 领先更多步数,这个方案是可以被选择的。

结果这样设 DP 状态就要多设一个 “可预支” 步数,转移比较复杂,没弄出来。

最后打了个分类水部分分的程序,没想到爆零了。

T 2 T2 T2 不知道怎么做,就拿了前两个 Subtask 的分。

T 3 T3 T3 看不懂题,盲猜答案,挂了。

最后只有 T 2 T2 T2 25 25 25 分。

Day2

T 1 T1 T1 想拿前两个 Subtask ,第一个暴力,第二个哈希,但是第二个打挂了。

T 2 T2 T2 20 % 20\% 20% 显然直接暴力枚举每个函数的取值就好了嘛,Subtask3 应该要用到一些数学方法(然而 Subtask3 分开枚举就行了)。

结果跑出来只有 5 5 5 分。原因是我忘记在处理新的数据编号时清空前向星 fir 数组了……

T 3 T3 T3 觉得 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 可以直接 O ( n 2 ) O\left(n^2\right) O(n2) 跑最长路, 5 , 6 5,6 5,6 显然就是树上跳 LCA​ 嘛。

但是打完之后发现 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 不能最长路做,这时才意识到这是 xor ⁡ \operatorname{xor} xor 操作,不能直接取 max ⁡ \max max

于是只有 10 10 10 分。

最后得分: 10 + 5 + 10 = 25 10+5+10=25 10+5+10=25

总结

这两天比赛一开始都很困,要注意休息(所以省选前夜就 10 : 00 10:00 10:00 睡觉吧)。

虽然我比较菜,不会切题,但是主要还是算法问题。省选前要把半生不熟的算法都过一遍,尤其注意算法的应用。

即便切不了题,也要努力拿部分分。代码失误率一定要降低!!!


题解

Alice 和 Bob 双在玩游戏

步数是不存在 “借用” 情况的,因为在操作过程中已经有人输掉了。

具体来说,就是假设现在 Alice 在根节点处,如果存在 “借用” 步数的情况的话,她会选择走到 3B 上。但是如果 Bob 在其它棋子的博弈中没有亏步数,他是不会选择在 3B继续往下走的;如果 Bob 已经亏步数了,他往下走只是苟活一步,要输了。所以 Alice 会选择节点 2W 。

在这里插入图片描述

那么设 f i f_i fi 表示如果 i i i 上有一个棋子,并且 i i i 归属的玩家先手,能比对手最多领先多少步。

转移就是
f i = max ⁡ { 0 , 1 + max ⁡ i → j f j , c i = c j 1 − min ⁡ i → j f j , c i ≠ c j f_i=\max \begin{cases} 0,\\ 1+\max_{i\to j} f_j, &c_i=c_j\\ 1-\min_{i\to j} f_j, &c_i\neq c_j \end{cases} fi=max0,1+maxijfj,1minijfj,ci=cjci=cj
然后再做一个背包就好了。

时代的眼泪·SP

分块 做。

每次将每个块上的点都暴力跳是不行的,只跳那些不在块中其它点的子树内的点就行了。

这样做要 O ( 1 ) O(1) O(1) 求出任意点的 k k k 级祖先。这是 长链剖分 的经典应用:

先求出每个点的 2 i 2^i 2i 级祖先以及每个长链顶点的距离为 [ 1 , l e n ] [1,len] [1,len] 的祖先( l e n len len 表示长链长度)。

k = 2 t + k ′ ( 2 t ≤ k < 2 t + 1 ) k=2^t +k'(2^t \le k<2^{t+1}) k=2t+k(2tk<2t+1) ,那么先跳到这个点的 2 t 2^t 2t 级祖先(记为 x x x )处,在 x x x 的祖先上找就可以了。

证明: k ′ < 2 t ≤ l e n k'<2^t\le len k<2tlen

但是由于所有人的常数都有亿点点大(或者说是题目的时间限制太紧了),OJ 上 3 s 3s 3s 没有人跑得过。

悄悄话

LZC:看到这种字符串问题第一想法就是广义后缀自动机。

建一个 AC自动机 即可,然后把它的 fail树 建出来。

根据 fail指针 的定义:

状态 u u u 的 fail 指针指向另一个状态 v v v ,其中 v ∈ Q v\in Q vQ ,且 v v v u u u 的最长后缀(即在若干个后缀状态中取最长的一个作为 fail 指针)。——OI Wiki

字典树 上,某个点的祖先和它的前缀一一对应;在 fail树 上,某个点是它的子树中的每个点的后缀。

因此设 f i f_i fi 表示选择 i i i 作为最后一句话的最大权值。

那么从 1 1 1 n n n 枚举每个串,在它的前缀中取 max ⁡ \max max ,然后把它的 f f f 拿来更新以它为后缀的所有串。

因为 S S S T T T 的字串等价于 S S S T T T 的某个前缀的某个后缀,因此这样做是对的。

数学考试

真的傻了,上一年暑假我才切过一道类似的题,当时还写了题解的(https://blog.csdn.net/huangzihaoal/article/details/108738867),居然现在又不会做了,看来是对这类题的精髓领悟不深。

发现 ∑ r i − l i + 1 \sum r_i-l_i+1 rili+1 比较小,可以暴力网络流。

我们可以对于每个函数 f i ( x i ) f_i (x_i) fi(xi) ,都建一条路径: S → A i , l i → A i , l i + 1 → ⋯ → A i , r i − 1 → A i , r i → T S\to A_{i,l_i}\to A_{i,l_i +1}\to \cdots \to A_{i,r_i -1}\to A_{i,r_i}\to T SAi,liAi,li+1Ai,ri1Ai,riT 。其中 A i , j A_{i,j} Ai,j 没有实质的含义,但是它向后一个点连的边的流量是有意义的,表示 x i = j x_i=j xi=j 时的代价。由于这个函数必须被选择, S → A i , l i S\to A_{i,l_i} SAi,li 的流量为 + ∞ +\infty +

先不考虑 m m m 组限制。由于 最大流 = 最小割 ,求出来的就是最小的代价。但是我们这道题要计算的是最大值啊!可以令代价= P − f i ( x i ) P-f_i (x_i) Pfi(xi) ,其中 P P P 是一个很大的数,可以把这个东西加成正数。

对于第 i i i 组限制,令 x u i ≤ x v i + D i x_{u_i}\le x_{v_i}+D_i xuixvi+Di 的含义就是:如果 x u i ≥ x x_{u_i}\ge x xuix ,那么 x v i ≥ x − D i x_{v_i}\ge x -D_i xvixDi ,也就是如果 f u i f_{u_i} fui 不选择 [ l u i , x − 1 ] [l_{u_i},x-1] [lui,x1] ,那么 f v i f_{v_i} fvi 必定只能在 [ x − D , r v i ] [x-D,r_{v_i}] [xD,rvi] 中选择。因此连若干条 A u i , x → A v i , x − D A_{u_i,x}\to A_{v_i,x-D} Aui,xAvi,xD 的边(注意,当 x − D > r v i x-D>r_{v_i} xD>rvi 时, A u i , x A_{u_i,x} Aui,x 要向 T T T 连边),由于这些限制关系不可以被去除,边权为 + ∞ +\infty +

最后跑最大流就好啦!至此和上面那道题基本相同。

等等,那无解怎么判断?

差分约束 x u ≤ x v + D x_u\le x_v+D xuxv+D 这种限制看上去很像最短路的 d i s u ≤ d i s v + l e n ( u , v ) dis_u\le dis_v + len_{(u,v)} disudisv+len(u,v) d i s dis dis 表示最短路长度, l e n len len 表示边权),因此就从 v v v u u u 连一条边权为 D D D 的边。

至于 x i ∈ [ l i , r i ] x_i\in [l_i,r_i] xi[li,ri] 的限制,就一开始先让每个点卡到上界,即 d i s i = r i dis_i=r_i disi=ri 。这样求出来的就是一组尽可能大的解,若此时 d i s i < l i dis_i<l_i disi<li ,说明无解。

有不少人直接判断答案是否超过合理区间,以此判断是否无解。但是这种方法的是错的,因为可能会出现一条链上割掉两条流量不同的边,而不是不得不选择边权为 + ∞ +\infty + 的边的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021.04.03-2021.04.04 省选模拟 总结 的相关文章

  • 走进开源代码(三)

    由于工作的原因 xff0c 虽然是一名C 43 43 程序员 xff0c 平时工作中还是使用的C 43 43 99 xff0c 而比特币v0 20 1的源码是C 43 43 11写的 xff0c 虽然之前对C 43 43 11也有些了解 x
  • Linux下开发Qt界面程序时命令行传参数的一个坑

    今天在Linux下开发Qt界面程序时发现一个奇怪的问题 xff0c 程序执行如下命令却会打印日志和弹出对话框 test name xxx 代码如下 xff1a include lt QApplication gt include lt QM
  • 树莓派为连接不同Wifi分配固定IP的方法

    由于在家里和外面两种场景下使用树莓派 xff0c 家里的wifi是192 168 3 1 xff0c 在外面我用的我的360随身wifi xff0c 它的IP固定是192 168 253 1 xff08 百度未找到修改它的方法 xff09
  • ajax-Access-Control-Allow-Origin跨域问题解决

    首先 xff0c 在解决之个问题之前 xff0c 我们要弄明白为什么会出现跨域问题 跨域问题是浏览器对于ajax请求的一种安全限制 xff1a 一个页面发起的ajax请求 xff0c 只能是与当前页域名相同的路径 xff0c 这能有效的阻止
  • SSH Config 那些你所知道和不知道的事

    SSH xff08 Secure Shell xff09 是什么 xff1f 是一项创建在应用层和传输层基础上的安全协议 xff0c 为计算机上的 Shell xff08 壳层 xff09 提供安全的传输和使用环境 也是专为远程登录会话和其
  • 在虚拟云主机部署pure-ftpd后,从另一个虚拟云主机连接该ftp服务的一些问题

    问题描述 xff1a 最近的一个项目需要在公网搭建一个ftp服务器 xff0c 同时开发的Java程序需要运行在另一台公网服务器上 xff0c 开始时在本地开发机器上测试 xff0c 连接公网的ftp服务器 xff0c 上传文件都没有问题
  • 树莓派4B安装Ros 2 Foxy踩坑记录

    1 通过树莓派官方提供的写卡工具raspberry pi imager选择Ubuntu 20 04 5 xff08 64 bit xff09 xff0c 因为我打算用一个8G的存储卡安装ros 2 xff0c Ubuntu 22 04的比较
  • 浅谈第三方登录用户表结构设计方案

    国民两大流量入口 xff0c 大家不说也想到了 xff0c 分别是微信和QQ 所以为了方便获取用户来源都对接了微信登录或者QQ登录 xff0c 这一类型的第三方登录入口 今天就以对接微信登录 QQ登录与苹果登录 来说说对第三方用户体系与我方
  • Linux 网络命令

    1 ifconfig查看当前活着的网络接口信息 root 64 localhost ifconfig a 表示显示所有网卡包括没有启动的网卡 root 64 localhost ifconfig ens33 down 关闭网卡 root 6
  • 最新ffmpeg编译和用eclipse进行源码调试

    最近由于项目需要 xff0c 必须修改ffmpeg的源码进行修改才能满足项目的需求 xff0c 但以前我从来没有自己去编译和使用ffmpeg的源代码 xff0c 一直都是用别人编译好了的sdk xff0c 再加上习惯了vs方便的编译环境 x
  • Nginx 基础架构简介

    Nginx Vs Apache 对比项目nginxapache备注进程结构master worker prefork thread mpm 网络结构nio aio lt 61 2 2 BIO gt 61 2 4 BIO NIO 模块处理异步
  • 使用<script setup>报错: ‘defineProps‘ is not defined

    解决方法1 xff1a 在 eslintrc js 的 env 增加配置 env 39 vue setup compiler macros 39 true 新增的配置 刚配置完重新启动开发服务的时候可能会报错 xff1a Environme
  • 毕设文档

    lt 64 page size 21cm 29 7cm margin 2cm P margin bottom 0 21cm gt 电话簿功能需求分析 注 xff1a 这里的号码可以是手机号 xff0c 也可以是家庭号码 一 xff1a 显示
  • Docker系列 利用RSShub搭建个人RSS源 从此万物皆RSS

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 通过Docker系列 安装个人RSS服务TTRSS 手机完美适配的学习 xff0c 我们已经成功地搭建了自己的RSS阅读器 可能也有小伙伴通过U
  • docker swarm init

  • Docker系列 深度使用nextcloud(七) 在nextcloud使用RSS订阅

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 如果你对RSS感兴趣 xff0c 可以到我博客的 学习地图 里查看如何用Docker搭建RSS阅读器和自定义RSS源 最近了解RSS的过程中 x
  • Docker系列 WordPress系列 WP Mail SMTP插件

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 在 Docker系列 WordPress系列 安全插件 一章中 xff0c 我们安装了一些网站安全有关的插件 在本章 xff0c 我再向大家介绍
  • Docker系列 WordPress系列 国服最强博客看板娘没有之一

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 在 Docker系列 WordPress系列 特效 教程中 xff0c 你应该已经学会怎么使用一个CDN看板娘 xff0c 比如 xff1a l
  • Docker系列 通过FRP实现内网穿透

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 有小伙伴提醒 xff0c fatedier frps才是frp官方的Docker镜像 但我看这个官方镜像都没有详细的使用说明 xff0c 所以不
  • 使用FRP进行内网穿透的最佳实践

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 前不久我出过一期 Docker系列 通过FRP实现内网穿透 讲述怎么利用FRP进行内网穿透 不过 xff0c 经过测试 xff0c 很快我发现此

随机推荐

  • Docker系列 Wallabag助力个性化网页RSS化

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 使用RSS阅读已经有一段时间了 xff0c 感觉RSS信息流确实很舒服 xff0c 大大提高了生活和工作效率 在日常工作或学习中 xff0c 经
  • Docker系列 酷炫的服务器性能监测工具netdata

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 此文内容目前处于BETA版本 我之前在 Linux基础 目录管理的个人实践 曾经介绍过一款叫Ward的VPS性能监控应用 xff0c 当时对它的
  • Docker系列 WordPress系列 个人博客的广告展示

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 某些网站访问的时候 xff0c 网页里会有很多广告 有些广告多的 xff0c 阅读体验很差 xff0c 非常恼人 在电脑端浏览网页时 xff0c
  • Docker系列 头脑风暴专用手绘图应用excalidraw

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 前段时间逛Github的时候偶然发现了一个叫excalidraw的应用 xff0c Github Repo有30 8k的Star excalid
  • Docker系列 自建代码托管和版本控制平台Gogs

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 相信大家对Github Gitee这类第三方商业平台不陌生 特别是Github xff0c 来自全世界的大多数优秀开发者都在Github上托管他
  • Ubuntu 虚拟机无法联网(NAT模式下)- 解决方法

    想要在 Ubuntu16 04 虚拟机上安装 git 克隆仓库 xff0c 只需在 Ubuntu 终端输入以下命令即可 xff1a sudo apt get install git 但是我在输入之后并未安装成功 xff0c 反而显示以下结果
  • 一种有效的基于VPS和RSS的科研小白文献阅读策略

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 科研工作人员都有很强的文献阅读的需求 及时了解他人的工作对于开拓研究视野 研究思路是很有帮助的 对于刚刚进入科研领域的新人小白 xff0c 为了
  • Docker系列 WordPress系列 自建随机图API之动态壁纸

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 目录 前言基础随机图apiimg mobile txtmp4 txtindex mobileOnly phpindex annimated php 页
  • Docker系列 WordPress系列 动态对话页面

    转自我的个人博客https blognas hwb0307 com 欢迎关注 xff01 前言 今天咱们又来整点花活了 xff01 应小伙伴sherwin的请求 xff0c 我抽空搞了一个 动态对话 页面 xff0c 界面大致如下 xff1
  • Docker系列 深度使用nextcloud(九) 硬盘挂载

    转自我的个人博客https blognas hwb0307 com xff0c 该文的内容更新仅在个人博客可见 欢迎关注 xff01 前言 基于 Docker系列 搭建个人云盘服务nextcloud xff0c 相信无论是在有 无443端口
  • Docker系列 深度使用nextcloud (十一) 特效

    转自我的博客文章https blognas hwb0307 com linux docker 3203 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 今天咱又来Nextcloud里玩点花样了 96 作为一个WordPre
  • NAS系列 为什么你需要一台NAS

    转自我的博客文章https blognas hwb0307 com nas 3213 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 之前无论是写Linux还是Docker的教程 xff0c 都是基于VPS的 如果已经学习
  • NAS系列 硬件选择

    转自我的博客文章https blognas hwb0307 com nas 3224 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 经过 NAS系列 为什么你需要一台NAS 的简单介绍 xff0c 如果你也决定像我一样组
  • NAS系列 硬件组装

    转自我的博客文章https blognas hwb0307 com nas 3260 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 之前我在 NAS系列 硬件选择 里讲述了自己为了升级NAS如何选配硬件 本节我大概说一些
  • Docker系列 基于OpenAI API自建ChatGPT

    转自我的博客文章https blognas hwb0307 com linux docker 4201 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 我用帐号 密码使用chatGPT已经有一段时间 但是 xff0c 我有
  • Thinkpad E431 解决无线网卡无法开启

    Thinkpad E431无线网卡无法开启 现象再现 xff1a Thinkpad E431新机 xff0c 原装win8系统 xff0c 使用win7光盘换为win7系统 xff0c 官方下载驱动程序 xff0c 安装后无线上网正常 点击
  • 华为OD真题-字符串重新排列

    描述 给定一个字符串s xff0c s包括以空格分隔的若干个单词 xff0c 请求s进行如下处理后输出 xff1a 单词内部调整 xff1a 对每个单词字母重新按字典序排序 单词间顺序调整 xff1a 统计每个单词出现的次数 xff0c 并
  • 如何在CSDN博客中所贴的代码进行【代码块】显示

    笔者学习android开发有半年多了 xff0c 而CSDN也陪伴我半年有余 xff0c 在开发全国移动终端参赛项目的时候 xff0c 就在CSDN上看别人的博客 xff0c 解决问题 xff0c 下载好的代码资源研究 xff0c 可谓CS
  • Ubuntu 16.04 安装 高版本远程桌面xrdp+xorg

    Ubuntu 16 04 安装 高版本远程桌面xrdp 43 xorg Ubuntu 16 04提供的官方源里面只能安装0 6 1版本的xrdp xff0c 大概长这个样子 这个版本的远程桌面有很多问题 xff0c 首先是无法在本地电脑和远
  • 2021.04.03-2021.04.04 省选模拟 总结

    地址 Day 1 xff1a https gmoj net senior contest home 3355 Day 2 xff1a https gmoj net senior contest home 3356 总结 两天都考得不好 xf