OI 杂题

OI 杂题

  • 字符串
    • 括号匹配
      • 例 1:

与之前的类似,就是讲一点技巧,但是比较乱,凑合着看吧。

字符串

括号匹配

  • 几何意义:考虑令 (+1+1+1 变换,令 )−1-11 变换,然后对这个 +1/−1+1/-1+1/1 构成的变换序列在平面直角坐标系中变成一张从原点出发的折线图,也就是令 ( 为上斜坡,) 为下斜坡。
  • 如何判断合法:转化完之后,我们只需要判断构成折线是否仅在 xxx 轴或 yyy 轴或第一象限内且是否最终回到 000
  • 扩展:如果不是从原点开始,令开始时 yyy 坐标为 kkk,则判断每个位置是否都 ≥k\ge kk 且最终回到 kkk。这可以用来判断子串是否为合法括号序列。

例 1:

给定一个合法括号序列 SSS
定义好的序列为由 ?() 构成的序列(可以不包含其中任意数量个),且存在唯一一种方式将每个 ? 依次替换为 () 后,得到合法括号序列。
问如果每个位置都有 12\frac{1}{2}21 的概率变为 ?,那么有多大的概率变为好的序列。
998244353998244353998244353 取模,∣S∣≤106|S|\le10^6S106

做法:

  1. 先将概率转化成方案数。
  2. 注意到对于一个好的序列,直接把它变为输入的序列一定是一种方案,于是变为怎样指定某些位置翻转但是每一个位置都不能翻转的方案数。
  3. 考虑转化成几何意义后怎么做,那就变成了考虑什么时候某个位置可以翻转但是翻转后一定无法得到合法括号序列。
  4. 上述情况当且仅当:
    1. 不匹配,也就是如果翻转那么一定无法使得左右括号数量相同,这会导致无法回到 000,出现情况当且仅当对于 (,后面不存在一个位置 ) 也可以被翻转,或对于 ),前面不存在 ( 也可以被翻转。(注意到一旦存在就一定会贡献给某个异类括号,因此即使不贡献给枚举的位置也会导致无解)。
    2. 翻转之后跑到 xxx 轴下面去了,这当且仅当翻转的位置为 ( 且直到下一个可以被翻转的 ( 前存在某个位置的原本的 yyy 坐标 ≤1\le 11
  5. 考虑对这个怎么计数,首先我们能得到一些结论:
    1. 不会存在 ...)...(... 然后两个括号都变成 ?,因为他们既可以跟原来的括号匹配,又可以翻转过来,跟内部的匹配或是跟对方匹配,可以证明这两种方案之一一定合法,转化成折线图后易证。也就是说,一定是一些 ( 被选择,然后一些 ) 被选择。
    2. 一个 (可以被标记为 ? 当且仅当以下条件之一成立:
      1. 它到后一个可以被翻转的 ) 中存在某个位置的 yyy 坐标 ≤1\le 11,翻转后会使得这个点坐标 −2-22,于是不合法,于是乎可以标记。
      2. 它后面没有标记为 ?) 了,这样如果翻转它一定回不到 000
  6. 于是什么时候可以放 (,什么时候可以放 ) 都已经确定好了,那么直接计数即可,我的做法是先存储 yyy 坐标 =0=0=0 的的配对的括号,枚举第一个 ) 被选择的区间,计算它的贡献,然后再在里面找坐标 =1=1=1 的括号,然后对于这样的一个位置,计算它的贡献。
  7. 具体来说,y=0y=0y=0 的贡献是左端点随便取或不取,然后如果这个区间里面选择取 (,那么除掉最后一个 ) 以外的所有 ) 都不能取(我们先没考虑 y=1y=1y=1 的影响),最后一个 ) 必须取。
  8. 接着考虑,y=1y=1y=1,那么它包含的前面一段 ( 选择后,这段的 ) 不能选,由于是计算比 y=0y=0y=0 更多的贡献,所以不计算选 ) 和部分选 ( 的情况以免算重,我们只需要计算不会被 y=0y=0y=0 包含的部分,也就是这个位置之后可以有 ) 被选择,加入答案即可。

实现可能较为困难,读者不妨尝试。原题是这个比赛的 T2,作者从 8:40 到 19:00 断断续续写了至少 7 小时才 A 掉。

总结:这题本质上是在考虑处理第一个 ) 被选择的位置,考虑不同位置会有什么影响,然后按照 y≤1y\le 1y1 来分段处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91067.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】Safety Alignment Should Be Made More Than Just a Few Tokens Deep

Safety Alignment Should Be Made More Than Just a Few Tokens Deep原文摘要问题提出现状与漏洞:当前LLMs的安全对齐机制容易被攻破,即使是简单的攻击(如对抗性后缀攻击)或良性的微调也可能导致模型越狱。核心论点: 作…

Generative AI in Game Development

如有侵权或其他问题,欢迎留言联系更正或删除。 出处:CHI 20241. 一段话总结本研究通过对来自 Reddit 和 Facebook 群组的 3,091 条独立游戏开发者的在线帖子和评论进行定性分析,探讨了他们对生成式 AI在游戏开发中多方面作用的认知与设想。研…

【C++算法】72.队列+宽搜_二叉树的最大宽度

文章目录题目链接:题目描述:解法C 算法代码:题目链接: 662. 二叉树最大宽度 题目描述: 解法 这里的宽度指的是一层的最右边的非空节点到一层的最左边的非空节点,一共的节点数。 解法一:硬来&am…

什么是3DVR?VR技术有哪些应用场景?

VR与3D技术解析及应用在高科技领域,VR和3D是两个常被提及的名词。那么,这两者之间究竟存在着怎样的区别与联系呢?简而来说,VR技术是3D技术的一种高级延展和深化应用。3D技术,即将二维设计图转化为立体、逼真的视觉效果…

栈与队列:数据结构核心解密

栈和队列的基本 栈(Stack)是一种后进先出(LIFO, Last In First Out)的数据结构。元素的插入和删除操作只能在栈顶进行。常见的操作包括压栈(push)和弹栈(pop)。 队列(Queue)是一种先进先出(FIFO, First In First Out)的数据结构。元素的插入在队尾进行,删除在队…

《C++初阶之STL》【list容器:详解 + 实现】

【list容器:详解 实现】目录前言------------标准接口介绍------------标准模板库中的list容器是什么样的呢?1. 常见的构造2. 迭代器操作std::list::beginstd::list::endstd::list::rbeginstd::list::rend3. 容量的操作std::list::sizestd::list::empty…

【灰度实验】——图像预处理(OpenCV)

目录 1 灰度图 2 最大值法 3 平均值法 4 加权均值法 5 两个极端的灰度值 将彩色图转为灰度图地过程称为灰度化。 灰度图是单通道图像,灰度化本质就是将彩色图的三通道合并成一个通道的过程。三种合并方法:最大值法,平均值法和加权均值法…

【linux驱动开发】编译linux驱动程序报错:ERROR: Kernel configuration is invalid.

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录一、报错二、解决方法1.先编译linux内核源码2.再重新编译驱动程序一、报错 在编译驱动程序过程中,经常碰到的一个小问题: make -C /home/lu…

Java面试宝典:MySQL中的锁

InnoDB中锁的类型非常多,总体上可以如下分类: 这些锁都是做什么的?具体含义是什么?我们现在来一一学习。 1. 解决并发事务问题 我们已经知道事务并发执行时可能带来的各种问题。最大的一个难点是:一方面要最大程度地利用数据库的并发访问能力,另一方面又要确保每个用户…

设备识别最佳实践:四维交叉验证框架

设备识别最佳实践:四维交叉验证框架 1. MAC地址分析(40%权重) - 设备身份核验 核心方法: # MAC地址标准化(OUI提取) mac"B4:2E:99:FB:9D:78" oui$(echo $mac | tr -d : | cut -c 1-6 | tr a-f A-…

《Java 程序设计》第 9 章 - 内部类、枚举和注解

大家好,今天我们来学习《Java 程序设计》第 9 章的内容 —— 内部类、枚举和注解。这三个知识点是 Java 中提升代码灵活性和可读性的重要工具,在实际开发中非常常用。接下来我们逐一展开讲解,每个知识点都会配上可直接运行的代码示例&#xf…

CTF Misc入门篇

在CTF比赛中,misc方向是必考的一个方向,其中,图形隐写是最最常见的类型。 先从Misc开始入门,一般会借助CTF SHOW解题平台,解题,然后进行技巧总结。 目录 图片篇(基础操作) misc1 misc2 misc3 misc4 …

Vulnhub 02 Breakout靶机

一、信息收集 我是在仅主机模式下扫描的。 以此去访问端口。 80端口是上面的主页,查看一下源代码,发现了如下图所示的注释,翻译过来是:别担心,没有人会来这里,安全地与你分享我的访问权限,它是…

论文阅读:2024 arxiv AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 AutoDefense: Multi-Agent LLM Defense against Jailbreak Attacks https://arxiv.org/pdf/2403.04783#page9.14 https://www.doubao.com/chat/14064782214316034 文章目录…

Spring Boot 请求限流实战:基于 IP 的高效防刷策略

前言 互联网流量就像洪水猛兽,来得快去得也快。如果不给接口装个“限速阀”,服务器瞬间被刷爆,宕机成真,根本不稀奇。没有限流机制,系统就像没有刹车的赛车,跑得太快反而翻车。为了保证服务稳定、响应迅速,保护后端资源不被恶意请求掏空,限流成必备武器。 本篇文章将…

机器学习第二课之线性回归的实战技巧

1 线性回归简介 1 线性回归应用场景 线性回归是一种用于分析自变量与连续型因变量之间线性关系的模型,其核心是通过拟合线性方程(y w_1x_1 w_2x_2 ... w_nx_n b)来预测因变量或解释自变量的影响。由于其简单、可解释性强的特点,线性回归…

【时时三省】(C语言基础)指向指针数据的指针变量

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省在了解了指针数组的基础上,需要了解指向指针数据的指针变量,简称为指向指针的指针。怎样定义一个指向指针数据的指针变量呢?下面定义一个指向指针数据的指针变量&#…

前端css 的固定布局,流式布局,弹性布局,自适应布局,响应式布局

1. 固定布局容器的宽高是固定的,单位一般是px,不会随着屏幕大小变化2.流式布局(百分比布局/vw)vw: 视图宽度的百分比,1vw代表视窗宽度的1% vh: 视图高度的百分比,1vh代表视窗高度的1%特点: 宽度随屏幕大小变化单位用%或vw 高度通常…

python学习DAY26打卡

DAY 26 函数专题1:函数定义与参数 内容: 函数的定义 变量作用域:局部变量和全局变量 函数的参数类型:位置参数、默认参数、不定参数 传递参数的手段:关键词参数 传递参数的顺序:同时出现三种参数类型时…

echarts图表点击legend报错问题(折线图)

原因是&#xff1a;echats 实例&#xff0c;不能够用响应式变量去接收。<template><div class"attendance-chart"><div v-if"loading" class"loading">加载中...</div><div v-else-if"error" class"e…