P14973 『GTOI - 2D』木棍

news/2026/1/19 7:43:45/文章来源:https://www.cnblogs.com/UesugiErii-/p/19499917

多次查询考虑价值函数能做到什么复杂度,去掉合法括号后一定形如 \(a\)) 跟着 \(b\)(,套路地放到格路上,) 看做 \(-1\)( 看做 \(+1\) 先考虑前面一段 ),则相当于从 \((0,0)\) 走到 \((x,-a)\) 其中合法的 \(x\) 是一段区间(即需要满足之后能走到 \((|S|,b-a)\)),但是在格路中 )(() 的表现是一样的(\(y\) 坐标变化抵消),但前者不合法,但是发现只有当出现 \(y<-a\) 时会出现这种情况,否则每个 ( 之后必定有 ) 消掉。而后半段是经典的,等价从 \((0,0)\) 走到 \((|S|-x,b)\) 不能碰到 \(y=-1\)。前后两段的合并形如卷积,但是发现其实限制都是不能碰到 \(y=-a-1\),则能够容斥计算一定碰到 \(y=-a\),不能碰到 \(y=-a-1\)\((0,0)\) 走到 \((|S|,b-a)\) 的方案数,都是经典的反射容斥单线情况。详见 反射容斥。

而取反部分容易线段树维护出每个子串去掉合法括号后的情况。

Takanashi Rikka
#include<bits/stdc++.h>
using namespace std;
#define fin(x) freopen(#x".in","r",stdin)
#define fout(x) freopen(#x".out","w",stdout)
#define fr(x) fin(x),fout(x);
#define Fr(x,y) fin(x),fout(y)
#define INPUT(_1,_2,FILE,...) FILE
#define IO(...) INPUT(__VA_ARGS__,Fr,fr)(__VA_ARGS__)
#define mp make_pair
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
#define il inline
#define cfast ios::sync_with_stdio(false);cin.tie(0),cout.tie(0)
#define ll long long
#define ull unsigned long long
#define intz(x,y) memset((x),(y),sizeof((x)))
inline void cmx(auto &x,ll y){if(y>x)x=y;}
inline void cmn(auto &x,ll y){if(y<x)x=y;}
inline int max(vector<int>w){int res=-1e9;for(int i:w)cmx(res,i);return res;}
inline int min(vector<int>w){int res=1e9;for(int i:w)cmn(res,i);return res;}
#define pcount(x) __builtin_popcountll(x)
const int N=5e5+5,mod=998244353;
#define int ll
char s[N];int fac[N],ifac[N];
ll qp(ll x,int y=mod-2){ll res=1;for(;y;x=x*x%mod,y>>=1)if(y&1)res=res*x%mod;return res;}
struct node{int l,r,cl[2],cr[2];bool laz;}t[N<<2];
node merge(node x,node y){node res={x.l,y.r};for(int i:{0,1}){res.cl[i]=x.cl[i],res.cr[i]=y.cr[i];if(x.cr[i]>y.cl[i])res.cr[i]+=x.cr[i]-y.cl[i];else res.cl[i]+=y.cl[i]-x.cr[i];}return res;
}
void rev(int u){t[u].laz^=1;swap(t[u].cl[0],t[u].cl[1]),swap(t[u].cr[0],t[u].cr[1]);
}
void pd(int u){if(t[u].laz)rev(u<<1),rev(u<<1|1),t[u].laz=0;
}
void build(int u,int l,int r){t[u]={l,r};if(l==r){stack<char>z;for(int i=l;i<=r;i++)if(s[i]=='1'){if(z.size()&&z.top()=='0')z.pop();else z.push('1');}else z.push('0');while(z.size())++(z.top()=='0'?t[u].cr[0]:t[u].cl[0]),z.pop();for(int i=l;i<=r;i++)if(s[i]=='0'){if(z.size()&&z.top()=='0')z.pop();else z.push('1');}else z.push('0');while(z.size())++(z.top()=='0'?t[u].cr[1]:t[u].cl[1]),z.pop();return;}int mid=l+r>>1;build(u<<1,l,mid),build(u<<1|1,mid+1,r);t[u]=merge(t[u<<1],t[u<<1|1]);
}
void upd(int u,int l,int r){if(t[u].l>=l&&t[u].r<=r)return rev(u);int mid=t[u].l+t[u].r>>1;pd(u);if(l<=mid)upd(u<<1,l,r);if(r>mid)upd(u<<1|1,l,r);t[u]=merge(t[u<<1],t[u<<1|1]);
}
node query(int u,int l,int r){if(t[u].l>=l&&t[u].r<=r)return t[u];int mid=t[u].l+t[u].r>>1;pd(u);if(r<=mid)return query(u<<1,l,r);if(l>mid)return query(u<<1|1,l,r);return merge(query(u<<1,l,r),query(u<<1|1,l,r));
}
int C(int x,int y){return fac[x]*ifac[y]%mod*ifac[x-y]%mod;}
int calc(int x,int y){return C(x,(x+y)/2);}
void UesugiErii(){int n;cin>>n>>(s+1);build(1,1,n);for(int i=fac[0]=1;i<=n;i++)fac[i]=fac[i-1]*i%mod;ifac[n]=qp(fac[n],mod-2);for(int i=n;i;i--)ifac[i-1]=ifac[i]*i%mod;int q;cin>>q;while(q--){int op,l,r;cin>>op>>l>>r;if(op==1)upd(1,l,r);else{node res=query(1,l,r);int x=r-l+1,tmp=max(res.cl[0],res.cr[0]),y=res.cr[0]-res.cl[0],k=-res.cl[0];// cerr<<"**"<<res.cl[0]<<' '<<res.cr[0]<<'\n';cout<<(calc(x,2*k-y)-calc(x,2*(k-1)-y)+mod)%mod<<'\n';// cout<<calc(y+k,x-k)-calc(y+(k-1),x-(k-1))<<'\n';// cerr<<y+k<<' '<<x-k<<' '<<y+(k-1)<<' '<<x-(k-1)<<'\n';}}
}
signed main(){//IO();//cfast;int _=1;//cin>>_;for(;_;_--)UesugiErii();return 0;
}

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

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

相关文章

婚庆公司员工工牌制作:AI批量处理团队成员证件照

婚庆公司员工工牌制作&#xff1a;AI批量处理团队成员证件照 1. 引言 1.1 业务场景描述 在婚庆服务行业中&#xff0c;专业形象是赢得客户信任的重要一环。为提升团队整体形象与管理规范性&#xff0c;许多婚庆公司会为员工统一制作工牌。传统方式下&#xff0c;需组织集体拍…

QMC音频解密神器:一键解锁QQ音乐加密文件的终极方案

QMC音频解密神器&#xff1a;一键解锁QQ音乐加密文件的终极方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的加密音频无法在其他设备播放而困扰吗&am…

CNKI-download终极指南:快速批量下载知网文献的完整方案

CNKI-download终极指南&#xff1a;快速批量下载知网文献的完整方案 【免费下载链接】CNKI-download :frog: 知网(CNKI)文献下载及文献速览爬虫 项目地址: https://gitcode.com/gh_mirrors/cn/CNKI-download 在学术研究的道路上&#xff0c;获取知网文献是每个研究者都…

3分钟彻底解决Windows热键冲突:热键侦探完整使用指南

3分钟彻底解决Windows热键冲突&#xff1a;热键侦探完整使用指南 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾经遇到过这样的困扰&am…

BetterNCM插件系统:重新定义你的音乐播放体验

BetterNCM插件系统&#xff1a;重新定义你的音乐播放体验 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在忍受传统音乐播放器的功能限制吗&#xff1f;BetterNCM插件管理器正在彻底…

PaddleOCR-VL从入门到精通:多语言OCR系统搭建指南

PaddleOCR-VL从入门到精通&#xff1a;多语言OCR系统搭建指南 1. 简介与技术背景 PaddleOCR-VL 是百度飞桨团队推出的面向文档解析任务的视觉-语言大模型&#xff08;Vision-Language Model, VLM&#xff09;&#xff0c;专为高精度、资源高效的多语言 OCR 场景设计。该模型在…

抖音合集批量下载终极解决方案:告别手动保存烦恼

抖音合集批量下载终极解决方案&#xff1a;告别手动保存烦恼 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为抖音合集视频的繁琐下载而苦恼吗&#xff1f;每次看到精彩的视频合集&#xff0c;却只能一…

使用Tauri创建轻量级可执行文件:Rust+前端项目应用

用 Tauri 打造极简桌面应用&#xff1a;Rust 前端的轻量革命你有没有试过下载一个“小工具”&#xff0c;结果安装包比手机拍的一段视频还大&#xff1f;一个本该秒开的配置编辑器&#xff0c;启动要等十秒&#xff0c;内存占用直奔 1GB&#xff1f;这在 Electron 泛滥的今天并…

Switch破解利器TegraRcmGUI:手把手教你实现设备定制化

Switch破解利器TegraRcmGUI&#xff1a;手把手教你实现设备定制化 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI 还在为Switch的封闭系统而烦恼吗&#xff…

MinerU-1.2B技术解析:高效处理扫描文档的秘诀

MinerU-1.2B技术解析&#xff1a;高效处理扫描文档的秘诀 1. 引言&#xff1a;智能文档理解的技术演进 1.1 行业背景与核心挑战 在数字化转型加速的背景下&#xff0c;企业每天需要处理海量的非结构化文档——从PDF报告、扫描合同到学术论文和财务报表。传统OCR工具虽然能完…

如何快速掌握PyRadiomics:医学影像特征提取的完整教程

如何快速掌握PyRadiomics&#xff1a;医学影像特征提取的完整教程 【免费下载链接】pyradiomics 项目地址: https://gitcode.com/gh_mirrors/py/pyradiomics PyRadiomics作为医学影像特征提取的黄金标准工具&#xff0c;为临床医生和研究人员提供了强大的放射组学分析能…

通义千问+ComfyUI组合拳:儿童动物图片生成实战教程

通义千问ComfyUI组合拳&#xff1a;儿童动物图片生成实战教程 在AI图像生成技术快速发展的今天&#xff0c;如何利用大模型为特定人群定制内容成为新的应用热点。面向儿童的内容尤其需要兼顾安全性、审美适配性和趣味性。本文将介绍一种基于阿里通义千问大模型与ComfyUI可视化…

戴森球计划FactoryBluePrints蓝图仓库终极指南:从新手到专家

戴森球计划FactoryBluePrints蓝图仓库终极指南&#xff1a;从新手到专家 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 还在为戴森球计划中复杂的工厂设计而烦恼吗&#x…

超详细版W5500以太网模块原理图参考设计

如何设计一块“稳如磐石”的W5500以太网模块&#xff1f;从原理图到实战的深度拆解你有没有遇到过这样的场景&#xff1a;MCU跑着LwIP协议栈&#xff0c;网络一忙就卡顿&#xff1b;TCP连接频繁断开&#xff0c;抓包发现是ACK丢了&#xff1b;或者刚上电通信正常&#xff0c;几…

QMC解码器:解锁QQ音乐加密音频的终极解决方案

QMC解码器&#xff1a;解锁QQ音乐加密音频的终极解决方案 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的加密音频无法在其他播放器上正常播放而烦恼吗&…

PyTorch 2.9实战案例:云端GPU 10分钟部署,2块钱玩一下午

PyTorch 2.9实战案例&#xff1a;云端GPU 10分钟部署&#xff0c;2块钱玩一下午 你是不是也和我一样&#xff0c;某天刷小红书突然看到别人用PyTorch做了个超酷的AI设计工具&#xff0c;一键生成配色方案、自动优化排版&#xff0c;甚至还能根据客户一句话描述出一整套视觉风格…

2026年比较好的傅立叶红外光谱仪销售厂家哪家靠谱? - 品牌宣传支持者

在2026年选择傅立叶红外光谱仪(FTIR)供应商时,应重点考察企业的技术研发实力、产品稳定性、售后服务能力以及行业应用经验。经过对国内红外光谱仪市场的深入调研,我们认为天津恒创立达科技发展有限公司是值得优先考…

Qwen3-4B电商文案生成实战:营销自动化系统部署

Qwen3-4B电商文案生成实战&#xff1a;营销自动化系统部署 1. 背景与业务需求 在当前竞争激烈的电商环境中&#xff0c;高效、个性化的营销内容生成已成为提升转化率的关键环节。传统的人工撰写方式不仅耗时耗力&#xff0c;且难以实现大规模个性化输出。随着大模型技术的成熟…

如何快速重构OpcUaHelper:打造工业自动化通信的终极指南

如何快速重构OpcUaHelper&#xff1a;打造工业自动化通信的终极指南 【免费下载链接】OpcUaHelper 一个通用的opc ua客户端类库&#xff0c;基于.net 4.6.1创建&#xff0c;基于官方opc ua基金会跨平台库创建&#xff0c;封装了节点读写&#xff0c;批量节点读写&#xff0c;引…

评价高的防火办公隔断供应商怎么联系?2026年推荐 - 品牌宣传支持者

在建筑装饰行业,选择优质的防火办公隔断供应商需要综合考量企业的技术实力、产品质量、服务体系以及市场口碑。根据2026年行业调研数据,优质的防火办公隔断供应商通常具备三大核心优势:一是拥有自主研发能力和技术;…