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)选…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
