【Acwing 周赛复盘】第92场周赛复盘(2023.2.25)
【Acwing 周赛复盘】第92场周赛复盘(2023.2.25)
周赛复盘 ✍️
本周个人排名:1293/2408
AC情况:1/3
这是博主参加的第七次周赛,又一次体会到了世界的参差(这次周赛记错时间了,以为 19:15 开始,不然 T3 应该也能 AC,就差一点 😂)
T1 签到题。✅
T2 没啥思路,就跳过去做 T3 了。❌ (经过y总讲解后,发现这是一道非常精妙,涉及树的前序遍历的递归题,值得反复咀嚼)
T3 题意有点绕,但是读明白之后,就是一道并查集的变形题目,但是融合了一点贪心思想。在看样例1时,以为只要输出最大集合的元素个数就行了;但是模拟样例2时发现,不对啊,这后面几个输出怎么和自己想的不一样呢。于是就开始模拟样例2的过程,但是中途却卡壳了许久,有几个输出一直没想明白。等完全想明白时,比赛时间已经到了。❌
希望未来也能继续努力,紧跟大佬们的步伐,继续加油 💪

周赛信息 📚
时间:2023年 2 月 25 日 19:00-20:15
竞赛链接: https://www.acwing.com/activity/content/2908/
y总直播间:http://live.bilibili.com/21871779
y总录播讲解视频:【AcWing杯 - 第 92 场周赛讲解】
题目列表 🧑🏻💻
| 题目名称 | 原题链接 | 视频讲解 | 难度 |
|---|---|---|---|
| AcWing 4864. 多边形 | 原题链接 | 视频链接 | 简单 🟢 |
| AcWing 4865. 有效类型 | 原题链接 | 视频链接 | 中等 🟡 |
| AcWing 4866. 最大数量 | 原题链接 | 视频链接 | 困难 🔴 |
题解 🚀
【题目A】多边形
【题目描述】
如果一个正多边形的边数 nnn 能被 444 整除,那么就称该正多边形是美丽的。
现在,给定一个正多边形的边数 nnn,请你判断它是否是美丽的。
【输入】
第一行包含整数 TTT,表示共有 TTT 组测试数据。
每组数据占一行,包含一个整数 nnn。
【输出】
每组数据输出一行结果,如果给定正多边形是美丽的,则输出 YES,否则输出 NO。
【数据范围】
前 333 个测试点满足 1≤T≤101 \le T \le 101≤T≤10。
所有测试点满足 1≤T≤1041 \le T \le 10^41≤T≤104,3≤n≤1093 \le n \le 10^93≤n≤109。
【输入样例1】
4
3
4
12
1000000000
【输出样例1】
NO
YES
YES
YES
【原题链接】
https://www.acwing.com/problem/content/4867/
【题目分析】
签到题。
【周赛现场 AC 代码】✅
#include<bits/stdc++.h>using namespace std;int T, x;int main() {cin >> T;while (T--) {cin >> x;if (x % 4 == 0)cout << "YES" << endl;elsecout << "NO" << endl;}return 0;
}
【题目B】有效类型
【题目描述】
在本题中,关于有效类型字符串,具体定义如下:
int是有效类型字符串。- 如果字符串
X和字符串Y都是有效类型字符串,则pair<X,Y>是有效类型字符串。
现有一行若干个单词,每个单词要么是 pair,要么是 int,并且其中 int 的数量恰好为 nnn 个。
你可以在不改变单词顺序的前提下,在这一行中任意添加 <、>、, 符号。
你的任务是构造出一个有效类型字符串。
输出这个有效类型字符串。
注意:
- 有效类型字符串中 不含 空格或其它多余字符。
- 可以证明如果存在满足条件的有效类型字符串,那么它一定是唯一的。
- 如果不存在满足条件的有效类型字符串,输出
Error occurred即可。
【输入】
第一行包含整数 nnn,表示给定单词中 int 的数量。
第二行包含若干个单词,每个单词要么是 pair,要么是 int。
【输出】
输出满足条件的有效类型字符串,如果不存在,则输出 Error occurred。
注意,有效类型字符串中 不含 空格或其它多余字符。
【数据范围】
前 666 个测试点满足:1≤n≤51 \le n \le 51≤n≤5。
所有测试点满足:1≤n≤1051 \le n \le 10^51≤n≤105,输入的总单词数量不超过 10510^5105,输入的 int 数量恰好为 nnn。
【输入样例1】
3
pair pair int int int
【输出样例1】
pair<pair<int,int>,int>
【输入样例2】
1
pair int
【输出样例2】
Error occurred
【原题链接】
https://www.acwing.com/problem/content/4868/
【题目分析】
递归构建 前序遍历的 pair 二叉树,代码十分精妙(详见代码注释)
这种递归的解题方式 值得反复咀嚼。
详细讲解见y总视频:https://www.acwing.com/video/4637/

【复盘后的优化代码】✅
//
// Created by Ricky X on 2023/2/24.
//#include<bits/stdc++.h>using namespace std;
int n;
string str, ans;bool dfs() {// 当前有字符可以读入if (cin >> str && str != "") {// 当前读入字符串为pair,则需要构建左右子树if (str == "pair") {ans += "pair<";if (!dfs()) return false; // 无法构建左子树,返回falseans += ",";if (!dfs()) return false; // 无法构建右子树,返回falseans += ">";return true;} else if (str == "int") { // 读入为int,直接返回trueans += "int";return true;}} else { // 当前没有字符读入,无法构建,返回falsereturn false;}
}int main() {cin >> n;// dfs()的作用是读入一个字符串,并且将其作为根结点,判断能否建立一颗树// dfs()返回true,说明当前读入的字符串可以构建一颗树// dfs()返回false,说明当前读入的字符串不可以构建一棵树// 不可以构建的情况:1.字符串读完了;2.读入pair,但是无法构建左右子树// dfs()构建成功,但是还有字符串读入,就会有多棵树,舍去该情况// 当且仅当dfs()构建成功,且没有字符串读入时,才能输出答案// 答案存储到字符串ans中bool flag = dfs();if (flag && cin >> str) flag = false;// 输出结果if (!flag) cout << "Error occurred" << endl;else cout << ans << endl;return 0;
}
【周赛现场 AC 代码】
现场未 AC
【题目C】最大数量
【题目描述】
一个无向图有 nnn 个点,编号 1∼n1∼n1∼n。
这些点之间没有任何边。
给定 ddd 个需求,编号 1∼d1∼d1∼d。
其中,第 iii 个需求是让点 xix_ixi 和点 yiy_iyi 连通。
需求可能存在重复。
在本题中,你需要依次解决 ddd 个问题,编号 1∼d1∼d1∼d。
其中,第 iii 个问题是,请你在图中添加恰好 iii 条无向边(不能添加重边和自环),使得:
- 前 iii 个需求都得到满足。
- 所有点的度的最大值尽可能大。
对于每个问题,你不需要输出具体方案,你只需要输出度的最大可能值。
注意:
- 如果点 aaa 和点 bbb 之间存在路径,则称点 aaa 和点 bbb 连通。
- 图中与点 aaa 关联的边数,称为点 aaa 的度。
- ddd 个问题之间是相互独立的,每个问题的答案都必须独立计算。
【输入】
第一行包含两个整数 n,dn,dn,d。
接下来 ddd 行,其中第 iii 行包含两个整数 xi,yix_i,y_ixi,yi,表示第 iii 个需求是让点 xix_ixi 和点 yiy_iyi 连通。
【输出】
共 ddd 行,其中第 iii 行输出第 iii 个问题中,度的最大可能值。
【数据范围】
前三个测试点满足,2≤n≤102 \le n \le 102≤n≤10。
所有测试点满足,2≤n≤10002 \le n \le 10002≤n≤1000,1≤d≤n−11 \le d \le n−11≤d≤n−1,1≤xi,yi≤n1 \le x_i,y_i \le n1≤xi,yi≤n,xi≠yix_i \ne y_ixi=yi。
【输入样例1】
7 6
1 2
3 4
2 4
7 6
6 5
1 7
【输出样例1】
1
1
3
3
3
6
【输入样例2】
10 8
1 2
2 3
3 4
1 4
6 7
8 9
8 10
1 4
【输出样例2】
1
2
3
4
5
5
6
8
【原题链接】
https://www.acwing.com/problem/content/4869/
【题目分析】
并查集 + 贪心(菊花图)
具体讲解见y总视频:https://www.acwing.com/video/4638/

【复盘后的优化代码】✅
//
// Created by Ricky X on 2023/2/24.
//#include<bits/stdc++.h>using namespace std;
const int N = 1010;
int pre[N], sum[N];
int n, d, a, b, op; // op是可以额外连接的操作次数// 并查集初始化
void init() {for (int i = 1; i <= n; i++) pre[i] = i, sum[i] = 1;
}// 查找元素x的祖先
int find(int x) {if (pre[x] != x) pre[x] = find(pre[x]);return pre[x];
}// 合并两个集合
void join(int a, int b) {int x = find(a);int y = find(b);if (x != y) pre[x] = y, sum[y] += sum[x];else op++; // 额外连接操作数+1
}// 查询
void solve() {// 将当前集合的大小存入vectorvector<int> v;v.clear();for (int i = 1; i <= n; i++)if (pre[i] == i)v.push_back(sum[i]);sort(v.begin(), v.end(), greater<int>());// 通过op次操作,把前op个元素数量最大的集合合并int res = v[0]; // 第一个最大的集合是不用合并的for (int i = 1; i <= op; i++) {res += v[i];}cout << res - 1 << endl;
}int main() {ios::sync_with_stdio(false); //cin读入优化cin.tie(0);cin >> n >> d;init();for (int i = 1; i <= d; i++) {cin >> a >> b;join(a, b);solve(); // 求解当前问题i的答案}return 0;
}
相关文章:
【Acwing 周赛复盘】第92场周赛复盘(2023.2.25)
【Acwing 周赛复盘】第92场周赛复盘(2023.2.25) 周赛复盘 ✍️ 本周个人排名:1293/2408 AC情况:1/3 这是博主参加的第七次周赛,又一次体会到了世界的参差(这次周赛记错时间了,以为 19:15 开始&…...
L1-087 机工士姆斯塔迪奥
在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。 你需要处理这个副本其中的一个机制:NM 大小的地图被拆分为了 NM 个 11 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家…...
本周大新闻|索尼PS VR2立项近7年;传腾讯将引进Quest 2
本周大新闻,AR方面,传立讯精密开发苹果初代AR头显,第二代低成本版将交给富士康;iOS 16.4代码曝光新的“计算设备”;EM3推出AR眼镜Stellar Pro;努比亚将在MWC2023推首款AR眼镜。VR方面,传闻腾讯引…...
aws console 使用fargate部署aws服务快速跳转前端搜索栏
测试过程中需要在大量资源之间跳转,频繁的点击不如直接搜索来的快,于是写了一个搜索框方便跳转。 前端的静态页面可以通过s3静态网站托管实现,但是由于中国区需要备案的原因,可以使用ecs fargate部署 步骤如下: 编写…...
Redis实战之Redisson使用技巧详解
一、摘要什么是 Redisson?来自于官网上的描述内容如下!Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。它不仅提供了一系列的 redis 常用数据结构命令服务,还提供了许多分布…...
SQLAlchemy
文章目录SQLAlchemy介绍SQLAlchemy入门使用原生sql使用orm外键关系一对多关系多对多关系基于scoped_session实现线程安全简单表操作实现方案CRUDFlask 集成 sqlalchemySQLAlchemy 介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系…...
【Linux学习笔记】8.Linux yum 命令和apt 命令
前言 本章介绍Linux的yum命令和apt命令。 Linux yum 命令 yum( Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装…...
windows服务器实用(4)——使用IIS部署网站
windows服务器实用——IIS部署网站 如果把windows服务器作为web服务器使用,那么在这个服务器上部署网站是必须要做的事。在windows服务器上,我们一般使用IIS部署。 假设此时前端给你一个已经完成的网站让你部署在服务器上,别人可以在浏览器…...
Random(二)什么是伪共享?@sun.misc.Contended注解
目录1.背景简介2.伪共享问题3.问题解决4.JDK使用示例1.背景简介 我们知道,CPU 是不能直接访问内存的,数据都是从高速缓存中加载到寄存器的,高速缓存又有 L1,L2,L3 等层级。在这里,我们先简化这些复杂的层级…...
Linux解压压缩
打包tar首先我们得提一下专门用于打包文件的命令——tartar用于备份文件,打包多个文件或者目录,也可以用于还原被打包的文件假设打包目录test下的文件 tar -cvf test.tar ./test 假设打包目录test下的文件,并用gzip命令将包压缩 tar -zcvf test.tar ./te…...
JavaSe第3次笔记
1.String str "hello";字符串类型。 2.两个字符串类型相加意思是拼接,类似于c语言里面的strcat函数。 3.整型变成字符串类型: int a 10; String str String. valueOf(a); 4.当字符串和其他类型进行相加的时候,结果就是字符串。(不完全…...
非人工智能专业怎样从零开始学人工智能?
人工智能(Artificial Intelligence,AI)是指让机器具有类似人类智能的能力,包括感知、理解、推理、学习、规划、决策、创造等多个方面。人工智能研究涉及到计算机科学、数学、物理学、心理学、哲学等多个领域,旨在模拟和…...
MyBatis之增、删、查、改
目录 前言 一、配置MyBatis开发环境 1.1 创建数据库和表 1.2 添加框架支持 1.3 创建目录结构 1.4 配置数据库连接 1.5 配置MyBatis中的XML文件路径 二、添加业务代码 2.1 查询数据库操作 2.1.1 添加实体类 2.1.2 添加mapper接口 2.1.3 在xml中实现mapper接口 2.1.…...
死磕Spring,什么是SPI机制,对SpringBoot自动装配有什么帮助
文章目录如果没时间看的话,在这里直接看总结一、Java SPI的概念和术语二、看看Java SPI是如何诞生的三、Java SPI应该如何应用四、从0开始,手撸一个SPI的应用实例五、SpringBoot自动装配六、Spring SPI机制与Spring Factories机制做对比七、这里是给我自…...
因果推断10--一种大规模预算约束因果森林算法(LBCF)
论文:A large Budget-Constrained Causal Forest Algorithm 论文:http://export.arxiv.org/pdf/2201.12585v2.pdf 目录 0 摘要 1 介绍 2 问题的制定 3策略评价 4 方法 4.1现有方法的局限性。 4.2提出的LBCF算法 5验证 5.1合成数据 5.2离线生…...
Linux基础命令-df显示磁盘的使用情况
文章目录 文章目录 df 命令介绍 语法格式 基本参数 参考实例 1)以人类可读形式显示磁盘空间的使用情况 2)显示磁盘的inode信息 3)显示磁盘和文件系统类型 4)指定显示文件系统 5)显示所有磁盘空间中的内容 …...
如何使用goquery进行HTML解析以及它的源码分析和实现原理
目录 goquery 是什么 goquery 能用来干什么 goquery quick start 玩转goquery.Find() 查找多个标签 Id 选择器 Class 选择器 属性选择器 子节点选择器 内容过滤器 goquery 源码分析 图解源码 总结 goquery 简介 goquery是一款基于Go语言的HTML解析库,…...
【Java 数组和集合 区别及使用案例】
Java中数组和集合都是用来存储一组数据的容器,但是在实际使用中,它们有一些区别和不同的使用场景。 数组 vs 集合:存储方式 数组是一个固定长度的容器,它的长度一旦被初始化之后,就无法再改变了。而集合是一个动态长…...
使用pynimate制作动态排序图
大家好,数据可视化动画使用Python包就可以完成,效果如下:想要使用Pynimate,直接import一下就行:import pynimate as nim输入数据后,Pynimate将使用函数Barplot()来创建条形数据动画。…...
Mysql 事务的隔离性(隔离级别)
Mysql 中的事务分为手动提交和自动提交,默认是自动提交,所以我们在Mysql每输入一条语句,其实就会被封装成一个事务提交给Mysql服务端。 手动提交需要先输入begin,表示要开始处理事务,然后就是常见的sql语句操作了&…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
