【CF】Day57——Codeforces Round 955 (Div. 2, with prizes from NEAR!) BCD
B. Collatz Conjecture
题目:
思路:
简单模拟
很简单的模拟,我们只需要快速的找到下一个离 x 最近的 y 的倍数即可(要大于 x)
这里我们可以这样写 add = y - (x % y),这样就知道如果 x 要变成 y 的倍数还要增加多少个数
然后模拟即可
注意,这样操作有限次后如果 k 足够,那么最后 x 一定会变成 1,此时将进入一个循环,每经过 k - 1 此后 x 又会变成 1,这样我们就能很快算出来了
代码:
#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int x, y, k;cin >> x >> y >> k;while (k && x!= 1){int add = min(k, y - (x % y));x += add;k -= add;while (x % y == 0){x /= y;}}k %= (y - 1);x += k;while (x % y == 0){x /= y;}cout << x << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}
C. Boring Day
题目:
思路:
双指针练习题
由于我们只能从左往后选,那么可以想到使用双指针来解决
我们定义双指针 L~R
sum < l,那么就增加右指针继续选
sum >= l && sum <= r,那么就结束选择,并且清零
sum > r,那么就增加左指针并且要减去之前的左指针的值
为什么这样呢?这其实是贪心的想法,因为我们要尽可能选的多,所以我们到了就立马结束,同时如果不行的话,由于我们只能从左往右选,所以我们删去左边的是正确的,且能给后面更多机会
代码:
#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"void solve()
{int n, l, r;cin >> n >> l >> r;vector<int> a(n + 5, 1e18);int res = 0;for (int i = 0; i < n; i++){cin >> a[i];}int L = 0, R = -1, sum = 0;while (L < n && R < n){if (sum >= l && sum <= r){res++;L = R + 1;sum = 0;}else if (sum < l){R++;sum += a[R];}else if (sum > r){sum -= a[L];L++;}}cout << res << endl;
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}
D. Beauty of the mountains
题目:
思路:
二维前缀和 + 裴蜀定理
这题目乍一看我们好像没啥思路,我们来简单分析一下试试
首先如果要改某个变 k*k 子矩阵中的数字,那么肯定有 ,其中cnt是这个子矩阵内 0/1 的数量,c 是一个任意变量
那如果我们所有可能加起来我们会发现有以下式子
其中每个 c 都是未知量,但是每个子矩阵的 cnt1 和 cnt0 都是已知量,且最后 h 的变化量一定就是我们所需要改变的量,那么就可以化为
仔细观察这个式子,我们可以发现这其实就是多个未知量时的裴蜀定理
那么有解条件就是满足 gcd(a,b,c,...) | h = 0
所以我们可以先将所有可能的子矩阵的cnt0和cnt1记录下来,然后枚举每一个子矩阵来计算常数 abc.. 最后跑一边 gcd 然后看看是否能同余 h 为 0即可
具体的,我们使用一个二维前缀和来记录 i*j 矩阵中的 1 的数量,这样 0 的数量就是 k * k - cnt1,然后我们枚举每一个k*k子矩阵的起点即可
实现部分看代码,有点细节
代码:
#include <iostream>
#include <algorithm>
#include<cstring>
#include<cctype>
#include<string>
#include <set>
#include <vector>
#include <cmath>
#include <queue>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <stack>
#include <memory>
using namespace std;
#define int long long
#define yes cout << "Yes\n"
#define no cout << "No\n"int gcd(int a,int b)
{return !b ? a : gcd(b, a % b);
}void solve()
{int n, m, k;cin >> n >> m >> k;vector<vector<int>> a(n+1, vector<int>(m+1));for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cin >> a[i][j];}}vector<string> s(n+1);for (int i = 1; i <= n; i++){cin >> s[i];s[i] = " " + s[i];}int diff = 0;vector<vector<int>> pre(n+2, vector<int>(m+1,0));for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){pre[i][j] = pre[i-1][j] + pre[i][j-1] - pre[i-1][j-1];if (s[i][j] == '1'){pre[i][j]++;diff += a[i][j];}else{diff -= a[i][j];}}}if (diff == 0){yes;return;}int g = 0;k--;for (int i = 1; i <= n - k; ++i) {for (int j = 1; j <= m - k; ++j) {int f = pre[i + k][j + k] - pre[i + k][j-1] - pre[i-1][j + k] + pre[i-1][j-1];f = abs((k+1) * (k+1) - 2 * f);g = gcd(g, f);}}if (g == 0 || abs(diff) % g != 0) {no;}else {yes;}
}signed main()
{cin.tie(0)->sync_with_stdio(false);int t = 1;cin >> t;while (t--){solve();}return 0;
}
相关文章:
【CF】Day57——Codeforces Round 955 (Div. 2, with prizes from NEAR!) BCD
B. Collatz Conjecture 题目: 思路: 简单模拟 很简单的模拟,我们只需要快速的找到下一个离 x 最近的 y 的倍数即可(要大于 x) 这里我们可以这样写 add y - (x % y),这样就知道如果 x 要变成 y 的倍数还要…...
Matlab 列车纵向滑模二阶自抗扰算法和PID对比
1、内容简介 Matlab 223-列车纵向滑模二阶自抗扰算法和PID对比 可以交流、咨询、答疑 2、内容说明 略 列车模型 在运行过程中,已知列车受到牵引力或者制动力,基本阻力和附加阻力的作用,规定与列车运行方向相同的力为正,与运行…...
Swift实战:如何优雅地从二叉搜索树中挑出最接近的K个值
文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结未来展望 摘要 在日常开发中,我们经常会遇到“在一堆数据中找出最接近某个值”的需求。尤其在搜索引擎、推荐系统或者地理坐标匹配中,这种“最近匹配”的问题非常常见。Le…...
深度策略梯度算法PPO
一、策略梯度核心思想和原理 从时序差分算法Q学习到深度Q网络,这些算法都侧重于学习和优化价值函数,属于基于价值的强化学习算法(Value-based)。 1. 基于策略方法的主要思想(Policy-based) 基于价值类方…...
QuickList
Redis在3.2版本引入数据结构,是一个双端链表,每个节点都是一个ZipList。 引入的原因:ZipList申请内存空间是连续的,如果内存占用较多,申请内存效率很低 思想:属于分片存储的思想 Redis配置项:…...
DVWA在线靶场-SQL注入部分
目录 1.SQL注入 1.1 low 1.2 Medium 1.3 high 1.4 impossible 1. SQL盲注 1.1 low 2.2 medium 2.3 high 2.4 impossible 1.SQL注入 显注:前端页面可以回显用户信息,比如 联合注入、报错注入。 盲注:前端页面不能回显用户信息,比…...
IDEA+git将分支合并到主分支、IDEA合并分支
文章目录 一、合并分支二、可能遇到的问题2.1、代码冲突 开发过程中我们可能在开发分支(dev)中进行开发,等上线后将代码合并到主分支(master)中,本文讲解如何在IDEA中将dev分支的代码合并到master分支中。 一、合并分支 功能说明:将dev分支的…...
【Linux笔记】——进程信号的产生
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:【Linux笔记】进程间通信——system v 共享内存 🔖流水不争,争的是滔滔不 一、进程信号…...
Java后端文件类型检测(防伪造)
在 Spring Boot 项目中,为了防止用户伪造 Content-Type(例如将 .txt 文件改为 image/jpeg 上传),可以通过检查文件的 Magic Number(文件头签名)来验证文件的真实类型。以下是 详细实现步骤 和 完整代码示例…...
知名人工智能AI培训公开课内训课程培训师培训老师专家咨询顾问唐兴通AI在金融零售制造业医药服务业创新实践应用
AI赋能未来工作:引爆效率与价值创造的实战营 AI驱动的工作革命:从效率提升到价值共创 培训时长: 本课程不仅是AI工具的操作指南,更是面向未来的工作方式升级罗盘。旨在帮助学员系统掌握AI(特别是生成式AI/大语言模型…...
VUE3基础样式调整学习经验
首先创建一个vue项目最好要把不属于自己的样式都删除掉,以面出现css难以调整的情况: 1.assets目录下的main.css、base.css等样式全部删除 2.app.vue下的样式也全部删除 3.使用element plus一定要加入样式包: import element-plus/dist/in…...
AI与IoT携手,精准农业未来已来
AIoT:农业领域的变革先锋 在科技飞速发展的当下,人工智能(AI)与物联网(IoT)的融合 ——AIoT,正逐渐成为推动各行业变革的关键力量,农业领域也不例外。AIoT 技术通过将 AI 的智能分析能力与 IoT 的设备互联能力相结合,为农业生产带来了前所未有的精准度和智能化水平。 …...
物联网驱动的共享充电站系统:智能充电的实现原理与技术解析!
随着新能源汽车的快速普及,共享充电站系统作为其核心基础设施,正通过物联网技术的深度赋能,实现从“传统充电”到“智能充电”的跨越式升级。本文将从系统架构、核心技术、优化策略及实际案例等角度,解析物联网如何驱动共享充电站…...
MCP 入门实战:用 C# 开启 AI 新篇章
MCP 入门实战:用 C# 开启 AI 新篇章 一、什么是 MCP? MCP,全称为 Model Context Protocol(模型上下文协议),是一个开放的协议,它为应用程序向大型语言模型(LLM)提供上下…...
ES常识7:ES8.X集群允许4个 master 节点吗
在 Elasticsearch(ES)中,4 个 Master 节点的集群可以运行,但存在稳定性风险,且不符合官方推荐的最佳实践。以下从选举机制、故障容错、资源消耗三个维度详细分析: 一、4 个 Master 节点的可行性࿱…...
WebRTC:去中心化网络P2P框架解析
在互联网的世界里,数据的传输就像一场永不停歇的 “信息快递”。当我们使用 WebRTC 实现视频通话时,背后支撑的网络框架至关重要。今天,我们将深入探索 WebRTC 开发中视频通话的前置基础 ——P2P(点对点)框架ÿ…...
Linux 上安装RabbitMQ
🐇 安装 Erlang/OTP 27.3.4(最新稳定版) 1. 下载 Erlang 源码 cd /usr/local/src wget https://erlang.org/download/otp_src_27.3.4.tar.gz2. 解压源码 tar -zxvf otp_src_27.3.4.tar.gz cd otp_src_27.3.43. 安装依赖 sudo apt update …...
Service Mesh实战之Istio
Service Mesh(服务网格)是一种专为微服务架构设计的网络代理层,用于处理服务间的通信、管理和监控。Istio 是一个流行的开源 Service Mesh 实现,通过提供流量管理、观测性和安全性等功能,帮助开发者应对分布式系统的复…...
BGP练习
一、要求拓扑图 二、要求 完成上图内容,要求五台路由器的环回地址均可以相互访问 三、需求分析 1. 网络连通性目标 - 需求明确要求五台路由器(AR1 - AR5 )的环回地址能够相互访问。环回地址是路由器上用于测试、管理及作为BGP等协议中Ro…...
【Redis】分布式锁的实现
目录 一、本地锁存在的问题 二、redis实现分布式锁原理 三、使用示例 四、锁误删问题 解决思路 获取锁和释放锁代码优化 五、锁释放的原子性问题 解决思路(Lua脚本) 使用流程 总结 大家好,我是千语。上期给大家讲了使用悲观锁来解决…...
【vue】全局组件及组件模块抽离
一、全局组件 只要是实例化过的区域都可以使用 Vue.component("组件名",{ template: 内容} ) 二、组件模块抽离 抽离就是把template的内容写到body里面,然后建立id写到变量下的template里,id变量写到component里 body{ template: …...
手写 vue 源码 === watch 实现
目录 1. watch 的基本使用 2. watch 的整体架构 3. doWatch 函数的实现 3.1 处理不同类型的监听源 3.2 清理副作用的机制 3.3 创建响应式效果 3.4 初始化执行 3.5 返回停止函数 4. watch 如何基于 ReactiveEffect 实现 4.1 依赖收集过程详解 4.2 更新触发过程详解 …...
STM32核心机制解析:重映射、时间片与系统定时器实战——从理论到呼吸灯开发
知识点1【重映射的概念】 1、引入 默认: **定义:**系统或硬件在未经用户修改时的预设配置或行为 STM32的引脚功能、外设配置、中断向量表等默认由芯片设计或库函数预设。 部分重映射 **定义:**仅修改部分资源或地址的映射关系ÿ…...
【Linux网络编程】HTTPS协议原理
目录 一,HTTPS是什么? 1,什么是加密? 2,为什么需要加密? 3,常见的加密方式 对称加密 非对称加密 4,数据摘要&&数据指纹 二,HTTPS协议加密方案 方案一&a…...
【idea】快捷键ctrl+shift+F(Find in files)不起作用
问题描述 在idea中使用快捷键CtrlShiftF,进行内容的搜索,但是弹不出对话框、或有时候能弹出有时候又弹不出。 原因分析 1.怀疑是缓存问题?--清空缓存重启也没什么作用 2.怀疑是idea的问题?--有时行、有时不行,而且…...
「光域」系列激光测距传感器:以光为尺,重构空间认知边界
在150米深的地下矿井中,无人矿卡需要精准识别前方3厘米的落石;在千米高空的风电塔筒检测现场,工程师手持设备要穿透50米雾霭锁定0.1毫米的形变;在智能仓储的立体库房里,穿梭车需在0.3秒内完成货架间距的毫米级校准………...
http和https的区别
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是互联网上用于传输数据的两种协议,它们的主要区别如下: 1. 安全性 HTTP:明文传输,数据在传输过程中不加密,容易被窃…...
Dapp开发-如何开发一个dapp
DApp开发全流程指南:从需求到落地的技术实践与生态构建 ——2025年去中心化应用开发方法论与未来趋势解析 一、需求定位与架构设计:构建DApp的技术地基 需求精准定位 功能定义:明确DApp的核心场景(如DeFi借贷、NFT交易、DAO治理&…...
Python邮件处理(使用imaplib和email库实现自动化邮件处理)
在日常工作中,我们经常需要自动化处理电子邮件,比如自动下载附件、解析邮件内容、处理特定格式的数据等。本文将通过一个实际案例,详细介绍如何使用Python的imaplib和email库来实现邮件的自动化处理。 目录 环境准备与库介绍IMAP邮件服务器连…...
时空注意力机制深度解析:理论、技术与应用全景
时空注意力机制作为深度学习领域的关键技术,通过捕捉数据在时间和空间维度上的依赖关系,显著提升了时序数据处理和时空建模能力。本文从理论起源、数学建模、网络架构、工程实现到行业应用,系统拆解时空注意力机制的核心原理,涵盖…...
鸿蒙 UIAbility组件与UI的数据同步和窗口关闭
使用 EventHub 进行数据通信 根据 Stage 模型概念图 UIAbility 先于 ArkUI Page 创建 所以,事件要先 .on 订阅 再 emit 发布 假如现在有页面 Page1 和他的 UIAbility // src/main/ets/page1ability/Page1Ability.ets onCreate(want: Want, launchParam: Ability…...
UI-TARS: 基于视觉语言模型的多模式代理
GitHub:https://github.com/bytedance/UI-TARS 更多AI开源软件:发现分享好用的AI工具、AI开源软件、AI模型、AI变现 - 小众AI 基于视觉语言模型(Vision-Language Model)的 GUI 代理应用,允许用户通过自然语言控制电脑操…...
C++多态讲解
1. 多态的概念 通俗来说,就是多种形态。多态分为编译时多态(静态多态)和运行时多态(动态多态)。编译时多态就是函数重载和函数模板,他们传不同的类型的参数就可以调用不同的函数,通过参数的不同达到多种形态,之所以叫编译时多态&…...
QuecPython+蜂窝模组基础开发
开发准备 硬件: 一块 QuecPython_EC2X_EVB 开发板 (以该开发板为例,更多开发板介绍参见下文开发板列表)USB 数据线 (USB-A TO USB-C)PC (Windows10) 蜂窝模组开发板列表: EC2X_EVBEC600X_EVBEC800X_EVBEC600X/EC800X_CORE_EVBBG95_EVBEC200X_EVBEG91…...
-MAC桢-
MAC桢和IP的关系: 主机A想跨网络和B通信需要IP地址进行路由选择,但一个局域网,比如路由器进行路由选择之前,首先要将数据包发送给路由器B,也就是局域网通信也就是同一个网段的主机进行通信,所以必须通过mac…...
反转链表 - 简单
************* C topic: 206. 反转链表 - 力扣(LeetCode) ************* Give the topic an inspection. It seems really easy. At very first, I think that I will use reverse cammand to kill this topic. But a few seconds later I found that…...
负载均衡 ELB 在 zkmall开源商城高流量场景下的算法优化
在电商大促、直播带货等高频交易场景下,流量突发增长对系统稳定性提出严峻挑战。ZKmll 开源商城通过对负载均衡 ELB(Elastic Load Balancer)算法的深度优化,结合业务场景特性设计动态加权轮询 地域感知 热点分流的混合策略&…...
YOLOv5推理代码解析
代码如下 import cv2 import numpy as np import onnxruntime as ort import time import random# 画一个检测框 def plot_one_box(x, img, colorNone, labelNone, line_thicknessNone):"""description: 在图像上绘制一个矩形框。param:x: 框的坐标 [x1, y1, x…...
创建三个网络,分别使用RIP、OSPF、静态,并每个网络10个电脑。使用DHCP分配IP
DHCP 自动分配IP,集中管理,提高效率 在路由器中设置 Router>en Router#conf t Router(config)#ip dhcp pool ip30 //创建DHCP地址池 Router(dhcp-config)#network 192.168.30.0 255.255.255.0 // 配置网络地址和子网掩码 Router(dhcp-config)#defa…...
[网络层]网络层设备路由器
路由表 路由器能进行路由转发,所依靠的核心数据结构就是路由表,那么路由表是怎么来的, 静态路由和动态路由: 说的是表项,这个表项是静态的还是动态的,就跟ARP缓存表的表项静态动态是一回事, …...
Maven 项目中将本地依赖库打包到最终的 JAR 中
文章目录 前言详细步骤 前言 在现代后端开发中,构建高效且可扩展的 Web 应用程序通常依赖于多种第三方库和内部依赖。这些依赖可以来自公共仓库,也可能是公司内部自研的库或尚未发布到公共仓库的 JAR 包。本文将详细介绍如何在 Maven 项目中处理本地依赖…...
大模型的Lora如何训练?
大模型LoRA(Low-Rank Adaptation)训练是一种参数高效的微调方法,通过冻结预训练模型权重并引入低秩矩阵实现轻量化调整。以下是涵盖原理、数据准备、工具、参数设置及优化的全流程指南: 一、LoRA的核心原理 低秩矩阵分解 在原始权重矩阵$ W 旁添加两个低秩矩阵 旁添加两个…...
CSS3 伪类和使用场景
CSS3 伪类(Pseudo-classes)大全 CSS3 引入了许多新的伪类,以下是完整的 CSS3 伪类分类列表(包括 CSS2 的伪类): 一、结构性伪类(Structural Pseudo-classes) 这些伪类根据元素在文…...
GitDiagram - GitHub 仓库可视化工具
GitDiagram - GitHub 仓库可视化工具 项目链接:https://github.com/ahmedkhaleel2004/gitdiagram 将任何 GitHub 仓库转换为交互式架构图,只需替换 URL 中的 hub 为 diagram。 ✨ 核心功能 即时可视化:将代码库结构转换为系统设计/架构图…...
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
本文将基于langgraph框架,用LLM查询NEO4J图数据库,构建可定制、能应对复杂场景的工作流! 🌟 核心亮点 是否用户提问是否电影相关?生成Cypher查询直接回答执行查询生成最终答案 🧩 模块化实现 1️⃣ 定义状态机 from …...
Python中操作Neo4j图数据库
在当今数据驱动的时代,关系型数据库在处理高度关联的数据时常常显得力不从心。图数据库,尤其是Neo4j,以其独特的图结构和高效的关系查询能力,成为了解决这一问题的利器。结合Python的简洁与强大,我们可以更高效地构建和…...
人工智能时代:解锁职业新身份,从“认证师”到“工程师”的进阶之路
在人工智能技术浪潮席卷全球的今天,技术的飞速迭代正在重塑职业版图。从算法优化到伦理决策,从系统测试到应用开发,AI技术不再只是程序员的专属领域,而是成为各行各业从业者必须掌握的“生存技能”。当企业争相布局AI赛道,个人如何在这场变革中抢占先机?答案或许藏在两个…...
浙江大学 deepseek 公开课 第三季 第3期 - 陈喜群 教授 (附PPT下载) by 突破信息差
浙江大学DeepSeek系列公开课第三季重磅开启,特邀该校多领域权威学者联袂主讲。课程聚焦AI技术如何重构基础学科研究范式,深度解码以DeepSeek为代表的智能模型在交叉学科中的创新应用。在"XAI"融合浪潮下,学术大咖将剖析传统学科与人…...
企业级商城系统容器化部署技术方案
容器化部署已成为企业级商城系统构建高可用、弹性架构的核心技术。结合行业实践与技术趋势,以下从架构设计、工具链选型、关键挑战及解决方案等维度,提供一套完整的实施技术方案: 一、架构设计与技术选型 微服务架构拆分 服务拆分原则&#x…...
Java设计模式之适配器模式:从入门到精通
适配器模式(Adapter Pattern)是Java中最常用的结构型设计模式之一,它像一座桥梁连接两个不兼容的接口,使得原本由于接口不兼容而不能一起工作的类可以协同工作。本文将全面深入地解析适配器模式,从基础概念到高级应用,包含丰富的代码示例、详细注释、使用场景分析以及多维对…...