A. Square Year

在这里插入图片描述
在这里插入图片描述

题目大意

给你一个四个字符的字符串,代表一个数字s
问是否存在a,b两个数字,使得 ( a + b ) 2 = s (a+b)^2=s (a+b)2=s

思路

如果s是奇数或不能被开根号一定不行
设sq为s开根号后的结果
将sq一分为2,考虑sq/2有没有余数的情况

// Author: zengyz
// 2025-06-26 15:53#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{string s;cin >> s;int num = 0;for (int i = 0; i < s.size(); i++){num *= 10;num += s[i] - '0';}int sq = sqrt(num);// cout<<sq<<endl;if (sq * sq != num){cout << -1 << endl;}else{if (sq % 2 == 0)cout << sq / 2 << " " << sq / 2 << endl;elsecout << sq / 2 << " " << sq / 2 + 1 << endl;}return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

B. Not Quite a Palindromic String

在这里插入图片描述
在这里插入图片描述

题目大意

给你一个01串,串s长度为n(偶数)
一对索引为好的如果 s i = s n − i + 1 s_i=s_{n-i+1} si=sni+1,
给你k,问在任意重排串s的情况下,是否存在k对好的索引

思路

求出能够凑成的最大值和最小值,设有cnt0个0,cnt1个1,最大值为相同的对着放,即 ( c n t 0 + c n t 1 ) / 2 (cnt0+cnt1)/2 (cnt0+cnt1)/2
最小值就是0101插着放,无可避免会有它们的差值/2个好的索引
另外k-最小值一定要是偶数,因为每次翻转01会多出两对好的索引

// Author: zengyz
// 2025-06-26 15:58#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n, k;cin >> n >> k;string s;cin >> s;int cnt1 = 0, cnt0 = 0;for (int i = 0; i < n; i++){if (s[i] == '0')cnt0++;elsecnt1++;}if (cnt0 < cnt1)swap(cnt0, cnt1);int maxx = cnt0 / 2 + cnt1 / 2;int minn = (cnt0 - cnt1) / 2;if (minn <= k && k <= maxx){if((k-minn)%2==0)cout << "YES" << endl;else cout<<"NO"<<endl;return;}cout << "NO" << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

C. Need More Arrays

在这里插入图片描述
在这里插入图片描述

题目大意

给你一个数组an,你可以移除数组中任意多个数,在你移除完后,
如果 a i + 1 < a i + 1 a_i+1<a_{i+1} ai+1<ai+1 ,那么 a i + 1 a_{i+1} ai+1会新开一个数组
问an最多会分成多少数组

思路

用idx记录一下上一个分出去的数组,最优解肯定是每个数组就一个元素,方便下一个分新的数组,然后继续遍历数组,找到下一个满足条件的数,将其赋值为idx

//Author: zengyz
//2025-06-26 16:12#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin>>n;vector<int> a(n);for(auto &x:a)cin>>x;int idx=0;int cnt=1;for(int i=1;i<n;i++){if(a[idx]+1<a[i]){cnt++;idx=i;}}cout<<cnt<<endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while(_T --) {solve();}return 0;
}

D. Come a Little Closer

在这里插入图片描述
在这里插入图片描述

题目大意

在一个1e9*1e9的平面上有n个妖怪,每个妖怪有自己的xy坐标,你可以最多移动一个妖怪,问能覆盖所有妖怪的最小矩形是多大

思路

按x和y坐标进行排序,每次忽略第一个和最后一个元素(因为他们一定在最外面)
将剩下的元素求行坐标和纵坐标的最小最大值,将他们设成矩阵的长宽
如果算出来的矩阵=n-1,那么就得再多开一行或者一列,取一下最小值
四种情况取最小值即可

// Author: zengyz
// 2025-06-26 16:14#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin >> n;vector<pair<int, int>> v(n), u(n);auto cmp1 = [&](pair<int, int> &a, pair<int, int> &b) -> bool{return a.first < b.first;};auto cmp2 = [&](pair<int, int> &a, pair<int, int> &b) -> bool{return a.second < b.second;};for (int i = 0; i < n; i++){cin >> v[i].first >> v[i].second;u[i].first = v[i].first, u[i].second = v[i].second;}sort(v.begin(), v.end(),cmp1);sort(u.begin(), u.end(),cmp2);if (n == 1 || n == 2){cout << n << endl;return;}ll ans = 1e18;auto calc = [&](auto &&calc, vector<pair<int, int>> &f, int l, int r) -> ll{long long idxi = 2e9, idyi = 2e9, idxa = 0, idya = 0;for (int i = l; i < r; i++){ll _x = f[i].first, _y = f[i].second;idxi = min(idxi, _x);idxa = max(idxa, _x);idyi = min(idyi, _y);idya = max(idya, _y);}ll res = (idxa - idxi + 1) * (idya - idyi + 1);if (res == n - 1)res += min(idxa - idxi + 1, idya - idyi + 1);return res;};ans = min(ans, calc(calc, v, 0, n - 1));ans = min(ans, calc(calc, v, 1, n));ans = min(ans, calc(calc, u, 0, n - 1));ans = min(ans, calc(calc, u, 1, n));cout << ans << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

E. Kirei Attacks the Estate

在这里插入图片描述
在这里插入图片描述

题目大意

给你一棵树,根节点为1
定义一个点的威胁值为 a i − a p i + a p p i − . . . a_i-a_{p_i}+a_{p_{p_i}}-... aiapi+appi...,其中 p i p_i pi为i到根节点(1)的父结点
问每个点的最大威胁值为多少

思路

设每个点当前的最大值f1和最小值f2,用dfs开始从根节点1开始遍历,取最小值的原因是当前的最小值对于子节点来说可能会使威胁值变大(若最小值为负数),使用dfs为当前节点的子节点先初始化最大值为max(0ll,max(-f1[now],-f2[now]));最小值为min(-f1[now],-f2[now]);(now为当前节点)
最后对每一个点取最大值f1即可

// Author: zengyz
// 2025-06-26 16:54#include <bits/stdc++.h>using namespace std;
typedef long long ll;void solve()
{int n;cin >> n;vector<ll> a(n + 1), ans(n + 1), f1(n + 1), f2(n + 1);vector<vector<ll>> son(n + 1);for (int i = 1; i <= n; i++){cin >> a[i];}for (int i = 1; i < n; i++){int u, v;cin >> v >> u;son[v].push_back(u);son[u].push_back(v);}auto dfs = [&](auto &&dfs, int now, int fa) -> void{f1[now] += a[now];f2[now] += a[now];// cout<<now<<" "<<f1[now]<<" "<<f2[now]<<endl;for (auto v : son[now]){if (v == fa)continue;f1[v] = max(0ll, max(-f1[now], -f2[now]));f2[v] = min(-f1[now], -f2[now]);dfs(dfs, v, now);}};dfs(dfs, 1, -1);for (int i = 1; i <= n; i++)cout << f1[i] << " ";cout << endl;return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _T = 1;cin >> _T;while (_T--){solve();}return 0;
}

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

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

相关文章

时序数据库IoTDB的架构、安装启动方法与数据模式总结

一、IoTDB的架构 IoTDB的架构主要分为三个部分&#xff1a; ‌时序文件&#xff08;Tsfile&#xff09;‌&#xff1a; 专为时序数据设计的文件存储格式。支持高效的压缩和查询性能。可独立使用&#xff0c;并可通过TsFileSync工具同步至HDFS进行大数据处理。 ‌数据库引擎‌…

ArrayList和LinkedList详解

在Java后端开发中&#xff0c;集合框架是我们日常编程不可或缺的工具&#xff0c;它为数据存储和操作提供了丰富的实现方式。作为Java集合框架中最常用的两种List实现&#xff0c;ArrayList和LinkedList各自具有独特的特性和适用场景。 1. 基本概念 1.1 ArrayList的定义与特性…

警惕微软Entra ID风险:访客账户存在隐蔽的权限提升策略

访客用户订阅权限漏洞解析 微软Entra ID的订阅管理存在访问控制缺陷&#xff0c;允许访客用户在受邀租户中创建和转移订阅&#xff0c;同时保留对这些订阅的完全所有权。访客用户只需具备在源租户创建订阅的权限&#xff0c;以及受邀成为外部租户访客的身份即可实施此操作。这…

EEG分类攻略2-Welch 周期图

在EEG信号处理的上下文中&#xff0c;使用Welch方法来估算信号的功率谱密度&#xff08;Power Spectral Density, PSD&#xff09;是一种常见的做法。你的代码片段是利用**scipy.signal.welch**函数来进行功率谱密度估算&#xff0c;并且涉及到一些关键的参数和步骤。让我们逐步…

开疆智能CCLinkIE转ModbusTCP网关连接脉冲计数器配置案例

本案例是三菱PLC通过CCLinkIE转ModbusTCP网关连接脉冲计数器的配置案例&#xff0c;具体配置如下。 配置过程&#xff1a; 首先设置从站通讯参数 主要设置IP地址&#xff0c;工作模式以及端口号&#xff08;Modbus默认502&#xff09; 找到通讯点表&#xff0c;找到需要读写的…

gRPC 使用(python 版本)

.proto 文件 .proto 文件 是 gRPC 和 Protocol Buffers 的接口定义文件&#xff0c;它描述了&#xff1a; 要传递什么数据&#xff08;也就是消息体 message&#xff09;。要暴露什么接口&#xff08;也就是服务 service 和它们的 方法&#xff09;。 也就是一份规范文件&am…

VMware安装

勾选【增强型键盘驱动程序】 #后期虚拟机用鼠标键盘比较好用 VMware创建主机Windows2 选择类型配置【自定义】 安装客户机操作系统【稍后安装操作系统】 客户机操作系统【Microsoft Windows】,版本选Windows最高版本 【固件类型】默认UEFI 【处理器配置】选1个处理…

【沉浸式解决问题】微服务子模块引入公共模块的依赖后无法bean未注入

目录 一、问题描述二、场景还原三、原因分析四、解决方案五、拓展知识参考文献 一、问题描述 在微服务项目中的公共模块进行了Mybatis Plus配置&#xff0c;创建了配置类并添加了Configuration注解&#xff0c;其他模块引入该模块后不生效 我这里是在Mybatis Plus公共模块中注…

SQL进阶:CASE表达式

目录 1、用一条SQL语句进行不同条件的统计 建表语句&#xff08;MySQL8&#xff09;&#xff1a; 录入数据&#xff1a; *按性别统计SQL 输出结果&#xff08;行列转换&#xff09; 2、在UPDATE语句里进行条件分支 建表语句&#xff08;MySQL8&#xff09;&#xff1a;…

哪四款AI工具让3D人物手办制作如此简单?

在当今数字化时代&#xff0c;AI技术的飞速发展为我们的生活带来了诸多便利和惊喜。其中&#xff0c;AI生成3D人物手办工具的出现&#xff0c;让我们能够轻松地将自己的创意和想象转化为实体手办&#xff0c;满足了众多手办爱好者的个性化需求。今天&#xff0c;我将为大家推荐…

Docker高级管理--Dockerfile镜像制作

目录 一:Docker 镜像管理 1:Docker 镜像结构 2:Dockerfile介绍 二:Dockerfile 语法基础 1:基础指令 2:环境设置指令 3:文件操作指令 4:执行命令指令 5:网络和暴露端口指令 6.容器挂载指令 三&#xff1a;dockerfile案例 1.构建nginx容器 一:Docker 镜像管理 Docker…

数字时代的“灵魂”之争:虚拟人形象的著作权困局与破局之道

首席数据官高鹏律师数字经济团队创作&#xff0c;AI辅助。 一、虚拟人的“数字生命”&#xff1a;一场关于“灵魂”的商业博弈 当一个虚拟偶像的“眼神”被复刻成千万个相似的数字面孔&#xff0c;当一段虚拟主播的“声音”被拆解为可交易的数据碎片——我们正在见证一个“数…

小型CI/CD搭建(TODO)

1 方案 因为是在国内&#xff0c;所以gitbub Actions&#xff0c;​​Azure DevOps​这些就直接拜拜了。 目前主流的大概是三种&#xff1a; 1 阿里云效/腾讯云CODING 2 GitLab CE GitLab Runner 3 Gitee Jenkins deepeseek比较了一下如下&#xff1a; 阿里云效 vs Git…

Android Studio flutter项目运行、打包时间太长

Android Studio&#xff1a;Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1 flutter Sdk&#xff1a;3.29.3 系统&#xff1a;windows flutter sdk从2.10.5升级到3.29.3&#xff0c;但是Flutter 3.16开始新增了使用 Gradle声明式 plugins {} 块&#xff0c;gradle文…

【OpenGL学习】(六)图形添加纹理

文章目录 【OpenGL学习】&#xff08;六&#xff09;图形添加纹理纹理环绕纹理过滤纹理颜色与顶点颜色混合 OpenGL纹理介绍&#xff1a;https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 【OpenGL学习】&#xff08;六&#xff09;图形添加纹理 项目…

allure安装

一、安装java 需要安装java环境&#xff0c;不安装的话在运行前会报错下列问题&#xff08;前提是安装了allure未安装java&#xff09; 1.官网地址&#xff1a;https://www.oracle.com/ 2.点击”Download Java“ 3.选择JDK正式版本&#xff08;需要jdk1.8&#xff09; 4.选择W…

SpringBoot基于JavaWeb的城乡居民基本医疗信息管理系统

概述 一个基于SpringBoot框架开发的JavaWeb医疗信息管理系统&#xff0c;采用了现代化的技术架构&#xff0c;功能全面&#xff0c;非常适合作为学习项目或二次开发的基础。 主要内容 该系统主要包含以下核心功能模块&#xff1a; ​​用户管理模块​​ 实现管理员、医生、…

SQL变量声明与赋值 分支 循环

– 变量 分支 循环 – declare 变量名 数据类型 – declare 关键字&#xff0c;作用声明变量 – 变量名&#xff1a;以开头 – 数据类型&#xff1a;数据库中支持的数据类型&#xff1a;int varchar(n) text char(n) nvarchar(n) nchar(n) declare name varchar(255)– 定义多…

AWS S3 可观测性最佳实践

AWS S3 介绍 AWS S3&#xff08;Amazon Simple Storage Service&#xff09;是一种可扩展的对象存储服务&#xff0c;提供高可用性、持久性和安全性。它允许用户存储和检索任意数量的数据&#xff0c;并通过简单的 Web 服务接口访问这些数据。S3 支持多种存储类别&#xff0c;…

Ubuntu下布署mediasoup-demo

一、引言 mediasoup是一个强大的SFU架构的WebRTC流媒体服务器&#xff0c;凭借其多功能性、高性能和可扩展性&#xff0c;mediasoup成为构建多方视频会议和实时流媒体应用程序的完美选择。它具有联播、SVC、传输BWE和更多尖端功能。本文介绍了mediasoup-demo在Ubuntu下的布署。…