Atcoder Beginner Contest 428 补题记录 - Inversentropir

C. Brackets Stack Query

题目大意

给予你 1 个空的字符串与 \(q\) 个询问,形如 1 ( 的询问将在字符串后增加 1 个 ( 字符,形如 2 的询问将会移除最后 1 个字符。在每次询问之后,你需要回答当前字符串中的左右括号是否能恰好匹配。

解法

性质:让我们假定存在 1 个只含有 () 的字符串 \(S\) ,再假定 1 个数组 \(A\) ,其中 \(A_0 = 0\)\(A_i = A_{i-1} + S_i\) ,在这里我们认为, '(' = 1 ,同时 ')' = -1 。可以容易看出当 \(A_{|S|}=0\) 时,左右括号数量是相等的。同时,也容易发现如果 \(A\) 中有小于 0 的项,则一定有某个时刻右括号多于左括号。一旦这种情况发生,无论后面补上了多少左括号都没法做到匹配。

因此,我们要动态维护一个支持 \(O( 1)\) 入栈,出栈和查询栈内最小值的数据结构。这里采用第二个栈来保存历史上每个时刻的最小值,这样就可以在出栈后进行还原。也就是在第二个栈入栈时要和栈顶比较,如果小于栈顶直接入栈,如果大于栈顶就将栈顶再次入栈。在出栈时,两个栈顶同时出栈。这样,第二个栈的栈顶就一直维护了第一个栈的最小值数据。

代码实现

具体实现上,由于 cincout 常数很大,需要优化一下,否则会 TLE。

#include <bits/stdc++.h>#define pb push_back
#define ob pop_backusing namespace std;
typedef long long ll;
const int maxn = 2e5 + 5;
const int mod = 1e9 + 7;ll q;int main() {cin.tie(0) -> sync_with_stdio(0);cin >> q;vector<int> A{0}, B{0};for(int i = 1; i <= q; i ++) {int op = 0;cin >> op;if(op == 1) {char c;cin >> c;A.pb(A.back() + (c == '(' ? 1 : -1));B.pb(min(A.back(), B.back()));} else {A.ob();B.ob();}cout << ((A.back() == 0 && B.back() == 0) ? "Yes" : "No") << '\n';}
}

D. 183184

题目大意

定义函数 \(f(x,y)\) 就是将 \(x\)\(y\) 两个数前后拼接在一起。现在给你 2 个正整数 \(C,D\) ,找到满足下列 2 个条件的正整数 \(x\) 的个数。

  • \(1\le x \le D\)
  • \(f(C, C+x)\) 为完全平方数

解法

假定 \(C +x\) 共有 \(d\) 位,那么 \(x\) 必须要满足:

  • \(1\le x \le D\)
  • \(10^{d-1}-C\le x\le 10^d - 1 -C\)

那么容易定义 \(x\) 的上下界:\(L = \max(1, 10^{d-1} - C)\)\(R=\min(10^d-1-C, D)\).

因为我们已经假定了 \(C +x\) 共有 \(d\) 位,因此在这个条件下,题目要求的完全平方数的取值范围在 \([\ C\times 10^d + C +L\ ,C\times10^{d} + C + R\ ]\) .

一个结论是,总共有 \(\lfloor \sqrt{k} \rfloor\) 个小于 \(k\) 的完全平方数,因此在 \(d\) 位的条件下满足条件的答案的个数应当是 \(\lfloor\sqrt{C\times10^{d} + C + R}\rfloor -\lfloor\sqrt{\ C\times 10^d + C +L-1}\rfloor\) .

现在只需要求出每个可能的 \(d\) 的答案之和就可以了。

代码实现

#include <bits/stdc++.h>using namespace std;
typedef long long ll;ll t, c, d;ll f (ll x) {ll y = sqrt(x);while (y * y > x) y--;while ((y + 1) * (y + 1) <= x) y++;return y;
}void solve() {cin >> c >> d;ll ans = 0;ll xmin = 1, xmax = 9, cshift = 10;while(xmin <= c + d) {ll l = max(xmin, c + 1);ll r = min(xmax, c + d);if(l <= r) {ll vl = c * cshift + l;ll vr = c * cshift + r;ans += f(vr) - f(vl - 1);}xmin *= 10;xmax = (xmax + 1) * 10 - 1;cshift *= 10;}cout << ans << endl;
}int main() {cin.tie(0) -> sync_with_stdio(0);cin >> t;while(t --) {solve();}
}

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

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

相关文章

【URP】Unity中Mipmap是如何实现的?

《Unity URP中的MipMap技术解析》摘要:本文详解Unity URP管线中的MipMap多级渐远纹理技术,通过预生成分辨率递减的纹理金字塔(如256256→128128→...→11),根据物体距离动态选择纹理层级。重点阐述:1)硬件自动生…

2025彩钢制品优质厂家推荐:腾越彩钢,一站式钢结构解决方案!

2025彩钢制品优质厂家推荐:腾越彩钢,一站式钢结构解决方案!随着建筑行业的不断发展,彩钢瓦、镀锌板、折弯件、C型钢、Z型钢、压型瓦、楼承板、钢结构安装及次檩条等产品在各类工程项目中的应用越来越广泛。然而,这…

SQL中BOM递归查询语句

向下递归查询 WITH CTE AS ( -- 锚点:LT-W-00000001 SELECT bom_no,prd_no,zc_no,id_no,0 AS Level -- 层级:0 表示起始 FROM tf_bom WHERE bom_no = LT-W-00000001-> UNION ALL -- 递归:查找下…

ICCV 2025 (Highlight) Being-VL:师夷长技,用NLP的BPE算法统一视觉语言模型 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:JVM 性能诊断

详细介绍:JVM 性能诊断2025-10-19 14:58 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

wqs 二分(凸完全单调性)

大学习 https://www.cnblogs.com/FloatingLife/p/19093641。 前置:斜率优化。我写的凸完全单调性(wqs 二分),有两个要素:凸,完全单调。 (施工中)以下是博客签名,正文无关 本文来自博客园,作者:Wy_x,转载请…

2025滑触线优质厂家推荐宸澳电气,安全防爆性能卓越!

2025滑触线优质厂家推荐宸澳电气,安全防爆性能卓越!当前C型/dhg型/c型单极组合/h型单极组合/行车瓷瓶绝缘子/分栋机/打包机/小型/M型/弧型/弧形/无轨电车/安全式/三相四线/1000a/立体仓库/防尘/地沟/四极安全/防爆/1…

CF *3000 数据结构题

CF *3000 数据结构题 A CF464E The Classic Problem \(\text{Link}\)题如其名,经典套路。这种非传统最短路题我们可以考虑模拟 Dijkstra,实际上本题就是使用 Dijkstra,问题在于如何存储以及比较两个边权的大小。观察…

2025年钢材厂家推荐排行榜,方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔钢材/热轧钢材,Q355B/Q345B/16Mn/45#/40Cr/A3/Q235B钢公司精选

2025年钢材厂家推荐排行榜:方钢/扁钢/圆钢/光轴/六角钢/异型钢/冷拉冷拔钢材/热轧钢材,Q355B/Q345B/16Mn/45#/40Cr/A3/Q235B钢公司精选随着工业技术的不断发展和市场需求的多样化,钢材作为基础材料在各个行业中发挥…

[Linux] Linux下的域名解析过程(本机hosts和DNS服务器)

[Linux] Linux下的域名解析过程(本机hosts和DNS服务器)$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");目录01 介绍01 问路策略02 查询hosts03 查询DNS服务…

2025定型机厂家推荐:鑫源恒进节能高效,智能排风引领行业新趋势!

2025定型机厂家推荐:鑫源恒进节能高效,智能排风引领行业新趋势!随着纺织印染行业的快速发展,定型机作为关键设备之一,在提升产品质量和生产效率方面发挥着重要作用。当前,定型机、拉幅定型机/拉幅、门富士定型机…

Emacs自定义插件进行笔记本地备份和RClone远程同步(KIMI)

Emacs自定义插件进行笔记本地备份和RClone远程同步(KIMI)为了能够在Emacs记笔记的时候能够同步和备份笔记,我用如下Emacs自定义插件实现这个功能。备份功能将笔记备份到本地指定目录的压缩包,同步功能将笔记和远程…

LLM分词器

BERT基座模型

ubuntu 24.04虚拟机安装vgpu显卡驱动

# 安装依赖 sudo apt install build-essential linux-headers-generic libglvnd-dev pkg-config -y # 安装dkms sudo apt install dkms -y # 开启32位兼容库 sudo dpkg --add-architecture i386 sudo apt update # 安装…

CF1859F Teleportation in Byteland

树链剖分维护贡献发现最优策略一定是在一个位置训练,之后就直接到目标点,那么我们可以枚举训练次数,之后就可以转了。那么也就是说我们希望找到一个 \(u,v\) 路径上的点 \(s\),那么我们之后一定是从 \(s\) 出发,找…

密钥自己生成的方法

两人一组,在Ubuntu或openEuler中(推荐openEuler)中使用OpenSSL编程实现带签名的数字信封协议。使用OpenSSL库时,Alice发送,Bob接收。Ailice,Bob在实验中要替换为自己的8位学号+姓名。使用Markdown记录详细记录实…

2025机床维修厂家推荐:永华鑫数控设备,专业服务保障生产!

2025机床维修厂家推荐:永华鑫数控设备,专业服务保障生产!随着工业4.0的推进和智能制造的快速发展,机床作为制造业的核心设备,其稳定性和可靠性直接影响着企业的生产效率和产品质量。然而,由于长期高负荷运转及环…

逆向分析CoreText中的字体级联/Font Fallback机制

逆向分析CoreText中的字体级联/Font Fallback机制完整内容也可以在公众号「非专业程序员Ping」查看 一、引言本文基于Xcode 16.4,iOS 18.5模拟器分析,不同系统版本可能有区别。前面我们介绍了自定义文字排版引擎的原…

2025棋牌室加盟推荐麻友社,自主自助模式引领行业新风尚!

2025棋牌室加盟推荐麻友社,自主自助模式引领行业新风尚!当前棋牌室加盟领域的技术挑战随着科技的不断进步和消费者需求的多样化,棋牌室加盟领域面临着诸多技术挑战。传统的棋牌室经营模式已经难以满足现代消费者的需…