OI 笑传 #27

news/2025/11/14 17:18:14/文章来源:https://www.cnblogs.com/hm2nsite/p/19222762

ABC 小思维。口胡为主。

ABC407E

反悔贪心题。

由这个题我们导出一个关于合法括号序列的充分必要条件:对于一个长度为 \(2N\) 的合法括号序列 \(S_{2N}\),对于其任意的一个前缀子串 \(S_{1,i},i\in [1,2N]\),这个子串中 ( 的数量一定大于等于 ) 的数量,且总的 () 数量均为 \(N\)

我们考虑依靠这个条件进行反悔贪心。具体是首先让所有字符都是 ),从左到右遍历每一个字符位置,如果不满足上面的条件就在前面找个 ) 把它变成 (,这样一定不会让前面的串不再满足上面的条件,于是我们找 ) 的最大值即可。

而且你会发现我们一直在保证合法的前提下减 ) 的数量,于是到最后这个串就是合法的。

ABC407F

涉及到单调栈算贡献这一块。

我们知道这种贡献是最值的可能出现最值相同的情况,此时如果直接无脑直接让这个最值贡献两边大于等于或是两边都大于的区间贡献会算错。

我们有一个简单的处理方法,就是让一个最值贡献的左半部分区间可以有和自己大小相同的数,右半部分不能有,这样贡献就对了。

剩余的就是分析贡献了,画画图即可。分三段。

这题还有区间加等差数列这一块,考虑静态那就是二次差分变成两次单点加,如果还要区间加也不急单独开一个一次差分完事了合并即可。

带查询的要上线段树,考虑给这个区间等差数列开个标记就是首项和公差,这两个也有结合律直接线段树即可。

写了个线段树维护等差数列加和区间加的代码,没有题,数是随便填的,拍了拍应该是对的:

code

Show me the code
#define rd read()
#define mkp make_pair
#define ls p<<1
#define rs p<<1|1
#define rep(i,a,b) for( int i=(a); i<=(b); ++i)
#define per(i,a,b) for( int i=(a); i>=(b); --i)
#include<bits/stdc++.h>
using namespace std;
#define uex -73357733
typedef long long i64;
typedef unsigned long long u64;
typedef unsigned int u32;
typedef __int128 i128;
i64 read(){i64 x=0,f=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=-1;c=getchar();}while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}return x*f;
}
struct seg{int l;int r;i64 v;i64 lzt;i64 b;i64 d;
}t[10000];
i64 b1[100000];
void b(int p,int l,int r){t[p].l=l;t[p].r=r;t[p].v=t[p].lzt=t[p].b=t[p].d=0;if(l==r){t[p].v=b1[l];return ;}int mid=l+r>>1;b(ls,l,mid);b(rs,mid+1,r);t[p].v=t[ls].v+t[rs].v;return ;
}
void pushdown(int p){int k=t[p].lzt;int be=t[p].b;int de=t[p].d;t[p].lzt=t[p].b=t[p].d=0;int lenls=t[ls].r-t[ls].l+1;int lenrs=t[rs].r-t[rs].l+1;t[ls].v+=lenls*k+(be+ be+(lenls-1)*de)*lenls/2;t[rs].v+=lenrs*k+(be+lenls*de+ be+lenls*de+(lenrs-1)*de)*lenrs/2;t[ls].lzt+=k;t[rs].lzt+=k;t[ls].b+=be;t[ls].d+=de;t[rs].b+=be+lenls*de;t[rs].d+=de;return ;
}
void addc(int p,int l,int r,int k){if(l<=t[p].l&&t[p].r<=r){t[p].v+=(t[p].r-t[p].l+1)*k;t[p].lzt+=k;return ;}pushdown(p);int mid=t[p].l+t[p].r>>1;if(l<=mid)addc(ls,l,r,k);if(mid<r) addc(rs,l,r,k);t[p].v=t[ls].v+t[rs].v;return ;
}
void addl(int p,int l,int r,i64 b,i64 d){if(l<=t[p].l&&t[p].r<=r){t[p].v+=(b+(b+(t[p].r-t[p].l)*d))*(t[p].r-t[p].l+1)/2;t[p].b+=b;t[p].d+=d;return ;}pushdown(p);int mid=t[p].l+t[p].r>>1;if(l<=mid)addl(ls,l,r,b,d);if(mid<r) addl(rs,l,r,b+max((mid-max(l,t[p].l))+1,0)*d,d);t[p].v=t[ls].v+t[rs].v;return ;
}
i64 qu(int p,int l,int r){if(l<=t[p].l&&t[p].r<=r)return t[p].v;pushdown(p);int mid=t[p].l+t[p].r>>1;i64 res=0;if(l<=mid)res+=qu(ls,l,r);if(mid<r) res+=qu(rs,l,r);return res;
}
int main(){int n,q;cin>>n>>q;for(int i=1;i<=n;i++)cin>>b1[i];b(1,1,n);for(int i=1;i<=q;i++){int op;cin>>op;if(op==1){int l,r,c;cin>>l>>r>>c;addc(1,l,r,c);for(int j=l;j<=r;j++)b1[j]+=c;}if(op==2){int l,r,b,d;cin>>l>>r>>b>>d;addl(1,l,r,b,d);for(int j=l,a=b;j<=r;j++,a+=d)b1[j]+=a;}if(op==3){for(int j=1;j<=n;j++){cout<<qu(1,j,j)<<' ';}cout<<'\n';cout<<"- implementations: "<<'\n';for(int j=1;j<=n;j++){cout<<b1[j]<<' ';}cout<<'\n';cout<<'\n';}}return 0;
}

ABC410E

经典技巧把答案扔状态里优化转移,直接做即可。

ABC410F

很有意思的题。

考虑把 .\(1\) #\(-1\),然后就变成了找子矩形和为 \(0\)

然后到这一步我就不会转化了。。。

想想一维该咋做。我们当然可以做个前缀和,从左到右扫一扫把前缀和值放个桶里面,由于前缀和的性质,前面前缀和一样是这个的位置代表这两个位置之间的子段和为 \(0\),统计一下是 \(O(n)\) 能做的。

二维呢?我们考虑钦定子矩形的高,这样把每一列的和放到一维数组里,然后前缀和,然后就是上面的做法。

于是我们考虑 \(O(n^2)\) 枚举高,也就是用两个指针卡住高的区间,再 \(O(m)\) 更新一维数组,再 \(O(m)\) 做一遍,时间复杂度是 \(O(n^2m)\)

但是枚举高,高可能很高,于是我们从宽高里面挑小的那一个枚举。

这就类似一个根号分治了,时间复杂度是 \(O(\max(n,m)\times \min(n,m)^2)\),最坏也就是 \(500^3\) 量级,能过。

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

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

相关文章

白银滚珠瓶凝胶伺服灌装机

近年来,白银制品及日化凝胶类产品在消费市场持续升温,带动滚珠瓶包装需求激增。然而行业快速扩张的同时,低价劣质设备泛滥、性能与标称严重不符等问题频发,导致终端用户在设备选型时陷入“低投入高维护”的恶性循环…

学习sql笔记

SQL 学习 首先: 练习sql的网址吧:https://sqlbolt.com/lesson/select_queries_introduction 学习地址:https://liaoxuefeng.com/books/sql/introduction/index.html 我是根据学习地址的练习题顺序来进行学习 基本语法…

2025年市场口碑好的河道护坡石笼网厂商口碑推荐榜,抗冲击抗腐蚀石笼网/柔韧抗压石笼网/锌铝合金石厂商推荐

行业背景与评选标准 随着国家水利基础设施建设投入持续加大,河道护坡石笼网作为重要的防护材料,其市场需求呈现稳步增长态势。据行业数据显示,2024年我国石笼网市场规模已突破120亿元,预计2025年将保持8%以上的增速…

2025 最新推荐!莆田自闭症机构推荐榜:行为训练、社交干预、专注力提升权威机构精选孤独症/多动症/多动症训练/孤独症训练矫正机构推荐

依据国际自闭症协会(ISA)最新测评报告,科学干预可使特殊儿童康复有效率提升 68%,而专业机构的干预效果是普通家庭训练的 3.1 倍。本次榜单采用国际通用的五维测评体系,确保推荐权威性与专业性:一是资质认证,核查…

P10360 [PA 2024] Desant 3

又是神秘模 2 计数题。 题意 有 \(n\) 个人,每个人有一个 01 数字,有 \(m\) 次操作,从 \(1\) 开始轮流执行每个操作,操作给出 \(a_i,b_i\),表示说若当前第 \(a_i\) 个人持有数字 1 且第 \(b_i\) 个人持有数字 0 则…

表格2-数组操作方法

表格2-数组操作方法✨ 数组操作方法推荐整理:按功能分类类别 核心功能 主要方法 是否修改原数组(副作用) 学习重点I. 转换/遍历 (The Big 3) 创建新数组,不改变原数组结构,用于数据转换。 map() 否 (No) 用于一对…

2025 最新莆田语言智力机构推荐!语言智力康复机构口碑排行榜 特殊儿童开音训练 / 障碍矫正 / 康复干预权威指南

引言 特殊儿童语言智力发育障碍问题日益凸显,相关国际协会测评数据显示,特定年龄段儿童中,谱系障碍、语言发育迟缓等问题的检出率持续攀升,科学干预成为改善预后的关键。而精准测评是有效康复的前提,当前权威测评…

上课

第一节形势与政策

典枢平台“数据经纪人”功能:打通数据供需,高效实现数据变现

参考:典枢平台 “数据经纪人” 功能:打通数据供需,高效实现数据变现在数据驱动业务的当下,数据流通效率直接影响业务推进节奏。但实际操作中,不少数据从业者都被供需对接难题困扰 —— 优质数据触达不到精准用户,…

2025年游泳对讲机生产厂家权威推荐榜单:教学主机/蓝牙防水训练耳机/防水游泳耳机源头厂家精选

在游泳训练与水上安全需求不断提升的背景下,专业游泳对讲机凭借其稳定的水下通讯性能,已成为游泳队、训练中心及水上乐园的核心设备。 据QYResearch调研统计,2031年全球无线对讲设备市场销售额预计将达到亿元级别。…

docker环境下如何使用lets Encrypt自动续签

前言我的linux服务器运行的是centos8; nginx采用的是docker-compose部署的方式,采用certbot docker容器申请和自动续期encrypt证书1:docker安装certbot容器 并且停止nginx容器 docker pull certbot/certbot docker-co…

Crosstool-NG构建arm交叉编译工具链

前言全局说明嵌入式移植,交叉编译工具链是必不可少的Crosstool-NG是一个用于构建交叉编译工具链的工具,它简化了从源代码构建gcc、glibc、binutils等工具的过程.一、说明 1.1 环境: Ubuntu 22.04 LTS (Linux Virtua…

获取docker前一分钟的至现在日志

#!/bin/bashcid=`docker ps | grep your_docker_name | awk -F" " {print $1}` echo "get your_docker_name contain id:${cid}" if [ -n ${cid} ];thents=`date -d -1minutes +%Y-%m-%dT%H:%M:%S…

【转载】python如何录屏

【转载】python如何录屏原地址: https://docs.pingcode.com/ask/ask-ask/940612.htmlPython录屏的方法有多种,主要包括使用Python库如PyAutoGUI、OpenCV、Pillow、以及专门的录屏库如mss和pygetwindow。 这些库各有其…

2025 年 11 月一力油漆/一力涂料厂家推荐排行榜:醇酸油漆,环氧富锌底漆,丙烯酸聚氨酯油漆优质品牌精选

2025 年 11 月一力油漆/一力涂料厂家推荐排行榜:醇酸油漆,环氧富锌底漆,丙烯酸聚氨酯油漆优质品牌精选 随着工业涂料行业的持续发展,醇酸油漆、环氧富锌底漆和丙烯酸聚氨酯油漆等产品在冶金、矿山、电力、桥梁、造…

2025 年 11 月一力油漆/一力涂料厂家推荐排行榜:醇酸油漆,环氧富锌底漆,丙烯酸聚氨酯油漆专业选购指南

2025 年 11 月一力油漆/一力涂料厂家推荐排行榜:醇酸油漆,环氧富锌底漆,丙烯酸聚氨酯油漆专业选购指南 行业背景与发展现状 工业防护涂料作为现代制造业的重要配套产业,其技术发展水平直接关系到各类工业设备的服役…

AI一周资讯 251108-251114

原文: https://mp.weixin.qq.com/s/4DjnCRMIOF_3dtoc_wVOtg Grok家族一夜两大升级,性能飙升引关注 2025年11月9日消息,Grok家族迎来两大重要升级。Grok 4 Fast上下文窗口提升至2M(200万token),能处理相当于150万个…

2025年模块电源十大品牌权威排行榜揭晓,铁路电源/军用电源/新能源车载逆变电源/光伏电源/辅助应急电源/电源模块/高功率密度电源厂商排行榜

行业领军企业实力解析 随着新能源、轨道交通、通信等领域的快速发展,模块电源市场呈现持续增长态势。作为电力电子技术的核心组成部分,模块电源的技术创新与产品质量直接影响着终端设备的性能表现。基于2024年市场调…

解决EF Core数据同步问题:从强制刷新到单例模式的演进

在用C#开发员工信息管理系统时遇到问题: 我将一名名为“钱七”的员工姓名修改为“钱八”。在打开该员工的详细信息页面时,确认姓名已成功更新为“钱八”。然而,在主页面的列表中,通过搜索关键词“八”进行检索 时,…

leetcode36. 有效的数独

leetcode36. 有效的数独36. 有效的数独法一:自己写的HashSet,惊天四循环 您的代码通过三个独立的循环分别检查行、列和33宫格的有效性,逻辑清晰且易于理解。但主要问题在于:••效率较低:进行了三次遍历(行、列、…