Codeforces Round 835 (Div. 4)题解ABCDEFG
Problem - A - Codeforces
题意:你有 t 组数据,每组有两两不同的三个数 a,b,c,现在需要你求出他们的中位数。
思路:模拟即可
// Code Start Here int t;cin >> t;while(t--){vector<int> a(3);for(int i = 0;i<3;i++)cin >> a[i];sort(a.begin(),a.end());cout << a[1] <<endl;}
Problem - B - Codeforces
题意:
现在对于任意一个单词,定义:它需要一个最小的大小为 x 的字母表,当且仅当这个单词只用到了英文字母中的前 x 个字符。
你现在需要对于 t 组长度为 n 的字符串 s,求出每一个单词的最小字母表。
思路:找最大的char,模拟即可
// Code Start Here int t;cin >> t;while(t--){int l;string s;cin >> l >> s;int ans = -0x3f;for(auto ch : s){ans = max(ans,int(ch - 'a'));}cout << ans + 1 <<endl;}
Problem - C - Codeforces
题意:
若干个参赛者正在比拼。
每个人想要知道除自己以外的最厉害的人力量比自己弱多少,现在他们依次在向你询问。
思路:一个蛮坑的模拟题,注意到只需要讨论最大值和次大值即可,然后分类讨论最大值的数量
// Code Start Here int t;cin >> t;while(t--){i64 n;cin >> n;vector<i64> a(n);map<i64,i64> mp;for(i64 i = 0;i<n;i++){cin >> a[i];mp[a[i]]++;}i64 max_val = *max_element(a.begin(),a.end());i64 second_max_val = -0x3f;for(i64 i = 0;i<n;i++){if(a[i]!=max_val){second_max_val = max(second_max_val , a[i]);}}if(i64(mp.size()) == 1){for(i64 i = 0;i<n;i++)cout <<"0 ";}else{if(i64(mp[max_val]) == 1){for(i64 i = 0;i<n;i++){if(a[i] == max_val){cout << max_val - second_max_val <<" ";}else cout << a[i] - max_val << " ";}}else{for(i64 i = 0;i<n;i++){cout << a[i] - max_val << " ";}}}cout << endl;}
Problem - D - Codeforces
题意:
一个含 n 个整数元素的序列 a[0…n−1],如果有且只有一个连续子序列 a[l…r] 同时满足以下条件,那么我们称原序列是 valley
的。
- 0≤l≤r≤n−1 ,
- al=al+1=al+2=⋯=ar ,
- l=0 或者 al−1>al ,
- r=n−1 或者 ar<ar+1 。
对于每次询问,判断给定的序列是否是一个 valley
。
思路:注意到valley只有三种情况 左右升 左右降 左降右升。可以模拟跑一下各种情况,或者判断是不是只有一个解即可
// Code Start Here int tt;cin >> tt;while (tt--) {int n;cin >> n;vector<int> a(n);for (int i = 0; i < n; i++) {cin >> a[i];}int cnt = 0;int beg = 0;while (beg < n) {int end = beg;while (end + 1 < n && a[end + 1] == a[end]) {end += 1;}if (beg == 0 || a[beg - 1] > a[beg]) {if (end == n - 1 || a[end + 1] > a[end]) {cnt += 1;}}beg = end + 1;}cout << (cnt == 1 ? "YES" : "NO") << '\n';}
Problem - E - Codeforces
题意:给定长度为 n 的 01 串,问至多将一个数字取反后逆序对的数量最大是多少。
思路:注意到数据范围是2e5思考如何优化计算方式,考虑到逆序对的定义是 i < j and ai > aj,而且每次只修改一个字符,思考到可以计算一下在当前位置的逆序对数量,对0 / 1分情况讨论,对另一半取反然后取最大值即可,逆序对数量可以用类似前缀和的方式快速计算
// Code Start Here int t;cin >> t;while(t--){int n;cin >> n;vector<int> a(n+1),s(n+1,0);for(int i = 1;i<=n;i++){cin >> a[i];s[i] = s[i-1] + a[i];}int cnt = 0;int ans = 0;for(int i = 1;i<=n;i++){if(a[i] == 1){//后面多少个0ans += (n-i) -(s[n] - s[i]);}else{//前面多少个1ans += s[i-1];}}ans /= 2;cnt = ans;for(int i = 1;i<=n;i++){if(a[i] == 1){int now = s[i-1];ans = max(ans,(cnt - ((n-i) -(s[n] - s[i])) + now));}else{int now = (n-i) -(s[n] - s[i]);ans = max(ans,(cnt - s[i-1] + now));}}cout << ans <<endl;}
Problem - F - Codeforces
题意:
有 n 个任务,你每一天都可以选择其中的一个任务完成或不选。当你完成了第 i 个任务,你将获得 ai 元。但是如果你今天完成了一个任务,那么你之后 k 天内都不能再完成这个任务。
给出两个数 c,d,要求求出满足在 d 天内可以收集至少 c 元的最大的 k。
思路:首先注意到不存在和无限的情况
1.当全部的和大于c,即d天内只跑一轮就能完成,无限
2.每天都跑最大的还是不能达到c,不存在
其他情况一定有答案,可以二分天数,或者贪心看跑一遍什么时候刚好大于即可,这里跑了一遍贪心
// Code Start Here int t;cin >> t;while(t--){//n个数 c元 d天memset(s , 0 , sizeof s);int n , c , d;cin >> n >> c >> d;for(int i = 1;i<=n;i++){cin >> a[i];}sort(a + 1 , a + 1 + n , [&](const int & a,const int & b){return a > b;});for(int i = 1;i<=n;i++){s[i] = s[i-1] + a[i];}if(s[min(n , d)] >= c){cout <<"Infinity" << '\n';continue;}if(s[1] * d < c){cout <<"Impossible" << '\n';continue;}int ans = -1;for(int i = d- 1;i>=0;i--){int Round = d / (i + 1);int Res = d % (i + 1);if(s[min(n , Res)] + Round * s[min(n , i + 1)] >= c){ans = i;break;}}cout << max(ans , 0LL) << endl;}
Problem - G - Codeforces
題意:给你一棵树和两个点 a,b,边有边权。你可以在任意时刻从当前所在的点跳到任意除了 b 以外的点。求有没有方案使得从 a 出发,到达 b 时边权 xor 和为 0。
思路:根据xor的性质,当两个数相等时,xor值为0,因此题目可以变形为:有没有一种方案,使得从a出发和从b出发到达一个非b , a的点时两个路径的xor权值相等。
马上想到对其中一条边跑一遍dfs,然后记录下来所有简单路径的xor值,然后再跑一遍另外一个点查询即可。
// Code Start Here int t;cin >> t;while(t--){int n , a , b;cin >> n >> a >> b;vector<vector<pair<int,int>>> g(n + 1);for(int i = 1;i<=n-1;i++){int u , v , w;cin >> u >> v >> w;g[u].push_back({v , w});g[v].push_back({u , w});}set<int> st;bool flag = false;st.insert(0);auto dfs1 = [&](auto dfs1 , int x ,int father , int val)->void{for(pair<int,int> &now : g[x]){if(now.first == father || now.first == b)continue;st.insert(val^now.second);dfs1(dfs1 , now.first , x ,val^now.second);}};auto dfs2 = [&](auto dfs2 , int x ,int father , int val)->void{for(pair<int,int> &now : g[x]){if(now.first == father)continue;if(st.count(val ^ now.second)) flag = true;dfs2(dfs2,now.first , x , val ^ now.second);}};dfs1(dfs1 , a , 0 , 0);dfs2(dfs2 , b , 0 , 0);if(flag)cout <<"Yes" << '\n';else cout <<"No" << '\n';}
相关文章:
Codeforces Round 835 (Div. 4)题解ABCDEFG
Problem - A - Codeforces 题意:你有 t 组数据,每组有两两不同的三个数 a,b,c,现在需要你求出他们的中位数。 思路:模拟即可 // Code Start Here int t;cin >> t;while(t--){vector<int> a(3);for(int i 0;i<3…...

NO1.C++语言基础|四种智能指针|内存分配情况|指针传擦和引用传参|const和static|c和c++的区别
1. 说⼀下你理解的 C 中的四种智能指针 智能指针的作用是管理指针,可以避免内存泄漏的发生。 智能指针就是一个类,当超出了类的作用域时,就会调用析构函数,这时就会自动释放资源。 所以智能指针作用的原理就是在函数结束时自动释…...
SQLite Having 子句详解
SQLite Having 子句详解 引言 SQLite 是一款轻量级的数据库管理系统,广泛应用于移动设备、嵌入式系统和各种桌面应用程序。在 SQL 查询中,HAVING 子句是用于过滤结果集的关键部分,尤其是在使用 GROUP BY 子句进行分组操作时。本文将详细解析 SQLite 中的 HAVING 子句,包括…...
Python数据分析面试题及参考答案
目录 处理 DataFrame 中多列缺失值的 5 种方法 批量替换指定列中的异常值为中位数 使用正则表达式清洗电话号码格式 合并两个存在部分重叠列的 DataFrame 将非结构化 JSON 日志转换为结构化表格 处理日期列中的多种非标准格式(如 "2023 年 12 月 / 05 日") 识…...

Spring Boot 3 整合 MinIO 实现分布式文件存储
引言 文件存储已成为一个做任何应用都不可回避的需求。传统的单机文件存储方案在面对大规模数据和高并发访问时往往力不从心,而分布式文件存储系统则提供了更好的解决方案。本篇文章我将基于Spring Boot 3 为大家讲解如何基于MinIO来实现分布式文件存储。 分布式存…...

ubuntu20 安装python2
1. 确保启用了 Universe 仓库 在某些情况下,python2-minimal 包可能位于 Universe 仓库中。你可以通过以下命令启用 Universe 仓库并更新软件包列表: bash复制 sudo add-apt-repository universe sudo apt update 然后尝试安装: bash复制…...
2025.3.3总结
周一这天,我约了绩效教练,主要想了解专业类绩效的考核方式以及想知道如何拿到一个更好的绩效。其他的岗位并不是很清楚,但是专业类的岗位,目前采取绝对考核,管理层和专家岗采取相对考核,有末尾淘汰。 通过…...

多线程-JUC源码
简介 JUC的核心是AQS,大部分锁都是基于AQS扩展出来的,这里先结合可重入锁和AQS,做一个讲解,其它的锁的实现方式也几乎类似 ReentrantLock和AQS AQS的基本结构 AQS,AbstractQueuedSynchronizer,抽象队列…...

ICLR 2025|香港浸会大学可信机器学习和推理课题组专场
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! AITIME 01 ICLR 2025预讲会团队专场 AITIME 02 专场信息 01 Noisy Test-Time Adaptation in Vision-Language Models 讲者:曹晨涛,HKBU TMLR Group一年级博士生,目前关注基础…...

docker引擎备份及解决拉取失败的问题
总结一下本文,docker引擎不是越多越好,此外阿里云的容器引擎加速可适用大多数情况。 docker引擎备份 仅使用阿里云 docker引擎备份,唯一使用的镜像地址是我的阿里云docker镜像加速地址,效果好(注意下面的阿里云镜像加…...

Django项目实战
1、安装django 查看包安装的位置 pip镜像源 镜像源名称镜像地址清华源https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple腾讯云https://mirrors.cloud.tencent.com/pypi/simple华为云https://repo.huaweicloud.co…...

【ThreeJS Basics 1-6】Camera
文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动(可以看到后面) 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…...

SpringBoot-模拟SSE对话交互
SpringBoot-模拟SSE对话交互 后端使用SSE进行会话,前端使用Html模拟大模型的问答交互->【前端】【后端】 1-学习目的 本项目代码仓库:https://gitee.com/enzoism/springboot_sse 1-核心知识点 1)什么是SSE协议->客户端发起一次请求&am…...

删除链表的倒数第N个节点 力扣19
一、题目 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出:[]示例 3&a…...

IvorySQL v4 逻辑复制槽同步功能解析:高可用场景下的数据连续性保障
功能简介 IvorySQL v4 基于 PostgreSQL 17,引入了逻辑复制槽同步至热备份数据库的功能。这一改进有效解决了旧版本中主数据库与备份数据库切换后逻辑复制中断的问题。对于那些追求数据高可用性和业务连续性的数据库来说,这无疑是一个重大的利好消息。它…...
vxe-table开启表尾和el-collapse-transition不兼容,动画卡顿
调用控制台 发现是el-collapse-transition内置的计算高度函数计算的高度总是会高一点 直接放弃使用el-collapse-transition 使用下面的div包裹住vxe-table 我的table是渲染出来的会有多个 <el-button click"group.messShow !group.messShow" type"text&q…...

康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重…...

golang学习笔记——go语言安装及系统环境变量设置
文章目录 go语言安装go envgo getgoproxy测试安装 Go 插件安装 Go 插件依赖工具参考资料用户环境变量和系统环境变量用户环境变量系统环境变量示例设置环境变量的步骤设置用户环境变量设置系统环境变量 验证环境变量总结 2024年最火的5大Go框架1. Gin:高并发接口的“…...

Redis|集群 Cluster
文章目录 是什么能干嘛集群算法-分片-槽位slotredis集群的槽位slotredis集群的分片分片槽位的优势slot槽位映射——业界的3种解决方案小厂:哈希取余分区中厂:一致性哈希算法分区大厂:哈希槽分区 面试题:为什么 Redis 集群的最大槽…...

解锁MacOS开发:环境配置与应用开发全攻略
✨✨✨这里是小韩学长yyds的BLOG(喜欢作者的点个关注吧) ✨✨✨想要了解更多内容可以访问我的主页 小韩学长yyds-CSDN博客 目录 引言 一、MacOS 开发环境配置 (一)必备工具安装 (二)集成开发环境(IDE)选…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...