当前位置: 首页 > news >正文

牛客 周赛106 20250904

牛客 周赛106 20250904

https://ac.nowcoder.com/acm/contest/116002

A:
题目大意:

void solve(){int n;cin >> n;if (n & 1) cout << "NO" << '\n';else cout << "YES" << '\n';
}

签到

B:
题目大意:
image-20250903193330737

void solve(){int n, k;cin >> n >> k;auto check = [](int x){int t = x, s = 0;while (t){s *= 10;s += (t % 10);t /= 10;}return s == x;};int cnt = 0;while (!check(n)){cnt ++;if (cnt > k) break;int t = n, s = 0;while (t){s *= 10;s += (t % 10);t /= 10;}n += s;	}if (cnt > k) cout << n << ' ' << -1 << '\n';else cout << n  << ' ' << cnt << '\n';
}

模拟即可,时间复杂度为 \(O(nk\log x)\)

C:
题目大意:
image-20250903193505856

void solve(){int n, l1, r1, l2, r2;cin >> n >> l1 >> r1 >> l2 >> r2;vector<int> a(n + 1);for (int i = 3; i <= n; i ++) cin >> a[i];for (int i = l1; i <= min(r1, l1 + 9); i ++){for (int j = l2; j <= min(r2, l2 + 9); j ++){a[1] = i % 10, a[2] = j % 10;bool f = 1;for (int k = 3; k <= n; k ++){if (a[k] != (a[k - 1] * a[k - 2]) % 10){f = 0;break;}}if (f){cout << i << ' ' << j <<'\n';return;} }}cout << -1 << ' ' << -1 << '\n';
}

枚举所有个位的情况,按照字典序从小到大循环,时间复杂度为 \(O(100n)\)

D:
题目大意:

image-20250903193631589

void solve(){int n;cin >> n;vector<int> a(n + 1);for (int i = 1; i <= n; i ++) cin >> a[i];vector<int> xr[n + 1];for (int i = 1; i <= n; i ++){int x = a[i];do{xr[i].push_back(x);x ^= (x >> 1);}while(x != a[i]);}int ans = 0;for (int i = 1; i <= n/2; i ++){int j = n - i + 1;int s = 1e9;for (int l = 0; l < xr[i].size(); l ++)if (xr[i][l] == a[j]) s = min(l, (int)xr[i].size() - l);if (s == 1e9){cout << -1 << '\n';return;}ans += s;}cout << ans << '\n';
}

\(x\) 进行替换操作相当于把 \(x\) 和他自身右移一位的结果异或起来,这样的操作最多执行 \(\log x\) 次后 \(x\) 复原

所以计算每个元素通过给定的操作可以变成的数字,然后枚举回文的另一个位置上的元素是否也在循环中

for (int l = 0; l < xr[i].size(); l ++)if (xr[i][l] == a[j]) s = min(l, (int)xr[i].size() - l);

选取操作次数最少的方向累加答案,时间复杂度为 \(O(n\log x)\)

证明:

假设 \(x\) 的二进制表示为 \(a_0a_1a_2\cdots a_n\),那么进行一次操作后二进制序列会变为

\[a_0,a_0\oplus a_1,a_1\oplus a_2,\cdots ,a_{n-1}\oplus a_n \]

进行第二次操作会变为

\[a_0,a_1,a_0\oplus a_2,\cdots ,a_{n-2}\oplus a_n \]

定义 \(f_{i,j}\) 表示第 \(i\) 次操作后二进制序列的第 $j $ 个元素的值,得到递推式

\[f_{i,j} = f_{i-2^k,j-2^k} \oplus f_{i-2^k,j} \]

又因为 \(j - 2^k\) 足够小时变为负数,越界后的 \(a_{j-2^k}\) 为前导零,那么 \(f_{i,j}=f_{i-2^k,j}\) 成立

E:
题目大意:

image-20250903203819607

int D[10] = {1, 0, 0, 0, 1, 0, 1, 0, 2, 1};
LL val[25];void init(){val[0] = 1;val[1] = 4;val[2] = 8;for (int i = 3;i <= 22; i ++){if (i & 1) val[i] = val[i - 1] + 4 * pow(10, i >> 1);else val[i] = val[i - 1] + 4 * pow(10, (i >> 1) - 1);}
}void solve(){LL n, sum;cin >> n >> sum;if (sum < n){cout << -1 << '\n'; return;}LL avg = sum / n;LL base;for (int i = 0; i <= 20; i ++){if (val[i + 1] > avg){base = i;break;}}vector<LL> ans;while (sum < val[base + 1] *(n - ans.size())){ans.push_back(val[base]);sum -= val[base];}while (ans.size() < n)ans.push_back(val[base + 1]);for (auto x : ans) cout << x << ' ';cout << '\n';
}

在洞数为 \(i\) 的情况下,我们可以确定出一个值最小的 \(x\) 来满足洞数等于 \(i\)

\(8\) 可以提供两个洞,那么在能填 \(8\) 的情况下先填 \(8\) 一定最优,如果洞数为 \(1\),那么 \(x\) 一定为 \(4\) ,因为 \(0\) 不能在前导位上

所以我们构造的策略是:洞数为偶数,全部都填 \(8\) ,否则就先填一个 \(4\)

val[1] = 4;
val[2] = 8;
val[3] = 48;
val[4] = 88;
....

题目给定的 \(sum\)\(n\) ,计算出每个元素位置上可以填入的平均值 avg ,先填入平均值以下的洞数尽可能大的数

然后当剩余的 \(sum\) 足够填下平均值以上的数时,就填这些数进去

vector<LL> ans;
while (sum < val[base + 1] *(n - ans.size())){ans.push_back(val[base]);sum -= val[base];
}
while (ans.size() < n)ans.push_back(val[base + 1]);

F:
题目大意:image-20250903205257044

void solve(){int n;cin >> n;vector<int> a(n + 2, 0);for (int i = 1; i <= n; i ++) cin >> a[i];int ans = 0;stack<int> st;for (int i = 1; i <= n; i ++){int f = 0;while (st.size() && st.top() < a[i]){f = 1;st.pop();}if (st.size() && a[i] != st.top() && a[i] < st.top() && f) ans ++; st.push(a[i]);}while (st.size()) st.pop();for (int i = n; i >= 1; i --){int cnt = 0;while (st.size() && st.top() < a[i]){cnt ++;st.pop();}if (st.size() && a[i] != st.top() && a[i] < st.top() && f) ans ++; st.push(a[i]);}cout << ans << '\n';
}

当一段区间满足除左右端点外的元素都小于左右端点的最小值时,这个区间为一个美丽数组

分为两种情况讨论:

  • \(a_l > a_r\) ,类似单调栈的形式从左到右遍历数组,当 \(a_i\) 大于了栈顶元素时,说明 \(a_i\) 是一个可能的右端点

    依次弹出栈内小于 \(a_i\) 的元素,如果有栈不为空, \(a_l \ge a_i\) 且弹出的元素至少有 \(1\)

    if (st.size() && a[i] != st.top() && a[i] < st.top() && f)
    

    说明在区间 \([l,i]\) 的子数组是一个美丽数组

  • \(a_r > a_l\) 同理,从右向左遍历数组即可

相关文章:

牛客 周赛106 20250904

牛客 周赛106 20250904 https://ac.nowcoder.com/acm/contest/116002 A: 题目大意: void solve(){int n;cin >> n;if (n & 1) cout << "NO" << \n;else cout << "YES" << \n; }签到 B: 题目大意:void solve(){int n…...

第一篇博客

1.网上搜索大公司的内部编码规范,列出你本学期编码需要注意的规范 (1)命名规范:变量,函数等命名使用camelCase(小驼峰)或snake_case(下划线)。要求名称有意义,避免缩写。本学期我需要注意在命名变量,函数时要使用标准的命名规范,使用有意义的英文单词命名变量、函数…...

如何让多个按钮绑定到同一个事件上

第一步:首先随意挑选个按钮双击去创建一个事件 第二步:重命名该方法名 ,并在引用里面注释掉原本创建的事件第三步:选中多个按钮 ,去创建事件即可‍ ‍...

STM32 HAL学习笔记:GC1808(PCM1808)的使用以及使用I2S+DMA读取

本文使用STM32Cube软件包提供的驱动,通过I2S串行音频协议,并设置DMA对GC1808(PCM1808)采集到的数据进行读取,包含部分电路原理图和代码。前言 我的项目需要使用一个立体声ADC对运算放大器输出的模拟音频进行读取,并通过USB Audio Class传输到PC。 在群友的指导下,我选择…...

完整教程:【视频系统】技术汇编

完整教程:【视频系统】技术汇编pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

MSTP 单域

...

阿里云百炼平台使用避坑记录 - 详解

阿里云百炼平台使用避坑记录 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; …...

springboot的run

springboot在哪里写自己的代码。@SpringBootApplication public class FooApplication {public static void main(String[] args) {SpringApplication.run(FooApplication.class, args);} }上面是springboot的入口代码,主文件除了这个类没别的了。 网上有很多分析,springboot…...

ubuntu服务器docker日期安装mysql

# 1. 拉取 MySQL 8 官方镜像 docker pull mysql:8.0# 2. 创建数据和配置目录(实现数据持久化) mkdir -p /opt/mysql/{data,conf,logs} chmod -R 777 /opt/mysql # 赋予权限,避免容器内权限问题# 3. 创建自定义配置文件(可选,优化 MySQL 性能) cat > /opt/mysql/conf/m…...

springboot的启动流程

一文彻底弄懂Spring Boot的启动过程 一,Spring Boot启动过程 1. 启动入口 Spring Boot 应用的启动入口通常是一个包含 @SpringBootApplication 注解的主类,并调用 SpringApplication.run() 方法。@SpringBootApplication 是一个复合注解,包含了 @Configuration、@EnableAut…...

萤火虫旅行网和萤火虫文旅的关系是什么

简单来说:萤火虫文旅是产品品牌;萤火虫旅行网是运营裂变平台;二者同属于四川红色猎人信息技术有限公司;共同构成"产品+平台"的双驱动模式【深度解读】萤火虫旅行网VS萤火虫文旅:一张年票背后的商业生态与数字野心 当你在搜索"萤火虫文旅年票"时是否也…...

「微积分 A1」基础知识(连载中)

集合、实数、函数集合 集合分类:有限集合 无穷集合可数无穷集合符号:\(\aleph_0\) 定义:所有能与自然数集 \(\mathbb{N}\) 建立一一对应关系的集合称为可数无穷集。不可数无穷集合符号:\(\aleph_x\) (基数更大的无穷)勒贝格测度: 勒贝格测度的目标是给实数轴上的子集(尤…...

第2周-预习作业

Java 相关问题解答 1. 方法相关问题 1.1 changeStr与changeArr的功能各是什么?changeStr功能:该方法接收一个String参数x,并尝试将x赋值为"xyz"。但由于String是不可变类,且Java采用值传递,所以该方法不会改变原始字符串的值。它只会修改方法内部局部变量x的引用…...

P12546 [UOI 2025] Convex Array

\(b_{i-1}+b_{i+1}\ge b_i\) 等价 \(b_{i+1}-b_i\ge b_i-b_{i-1}\) 即 \(b\) 数组差分数组单调不降。 若出现次数为 2,则必定是最小值在排列中左右各有 1 个。(不能相同元素放一起否则差分为 0)。 若存在元素出现次数大于 2 且不为最小值,则必定无解(多余的元素无论放在哪…...

一个新词:测试可靠性

提高测试可靠性是为了让我们的测试值得信任。 以前都在讲软件的健壮性、可靠性,好像都在对开发质量提出要求。今天,为了证明自己的工作是值得信任的,提高测试的可靠性势在必行。 提高测试的可靠性,传统做法有哪些呢?测试用例评审、交叉测试、测试复盘总结、线上问题跟踪学…...

CF827F Dirty Arkadys Kitchen

先把 \((u,v,l,r)\) 变成 \((u,v,l,r-1)\)。 不能停留,所以每个时刻有两种选择在某一条边上用 2 个时刻走一个来回浪费时间等某一条需要的边开启。走到下一个点。第 1 种选择启发若时刻 \(t\) 能到 \(u\),那么若存在边 \((u,v,l,r)\),那么所有时刻 \(T\in[l,r],T\equiv t\pm…...

P2839 [国家集训队] middle

经典的二分答案 \(mid\),\(\ge mid\) 的数权值为 1,\(<mid\) 权值为 -1,答案合法当且仅当存在区间 \([l,r]\) 使得权值和 \(\ge 0\),做前缀和 \(s\),即等价于 \(s_r-s_{l-1}\ge 0\to s_r\ge s_{l-1}\)。 对于询问 \((a,b,c,d)\) 只需要 \(\max_{i=c}^ds_i\ge \min_{i=a…...

wuti

...

友链

...

向量化存储与知识图谱的比较

以下内容来自AI对话生成简单来说,它们的核心区别是:向量化存储追求“语义上的相似”,而知识图谱追求“逻辑上的关联”。 我们可以用一个经典的例子来区分:问题:“苹果公司的创始人史蒂夫乔布斯最喜欢吃什么水果?” 向量化存储:可能会找到一段描述“史蒂夫乔布斯饮食习惯…...

力扣17题 电话号码的字母组合

归类:回溯算法 回溯三部曲: 1.确定回溯函数参数 首先需要一个字符串s来收集叶子节点的结果,然后用一个字符串数组result来保存起来,这两个变量依然定义为全局。 参数指定是有题目中给的string digits,然后还有一个参数就是int型的index。 index是用来记录遍历第几个数字了…...

萤火虫文旅年票、为什么能做到低至4.2元一张景区门票、还能高达50%的毛利润?

【商业揭秘萤火虫文旅年票】低至4.2元/张景区门票,毛利润竟超50%!萤火虫文旅年票的盈利模式为何让行业震惊?【商业揭秘萤火虫文旅年票】低至4.2元/张景区门票,毛利润竟超50%!萤火虫文旅年票的盈利模式为何让行业震惊? 当看到"4.2元一张景区门票"这个价格时你的…...

ubuntu服务器docker容器安装nacos

docker pull nacos/nacos-server:latest TOKEN=$(echo -n "nacos-token-$(date +%s)" | base64) # 随机令牌 IDENTITY_KEY="nacos-identity-key" # 自定义身份键 IDENTITY_VALUE="nacos-identity-value" # 自定…...

PWN手的成长之路-02-r3m4ke

启动环境,并下载附件。远程连接之后,输入了一些命令,发现无反应。开始分析附件。 先用checksec查看一下文件的安全属性。 文件是64位的且只开启了NX防御(这个保护开启就是意味着栈中数据没有执行权限,如此一来, 当攻击者在堆栈上部署自己的 shellcode 并利用缓冲区溢出等手…...

SAP 采购订单税率及含税金额取数

税码 联查A003及KONP "采购税码的税率SELECT a~mwskz, "税码k~kbetr "税率INTO TABLE @DATA(t_sl)FROM a003 AS a INNER JOIN konp AS kON a~knumh = k~knumhWHERE a~mwskz IN ( J0 , J1 , J2 , J3 , J4 , J5 , J6 )AND a~aland = CN.SORT t_sl BY mwskz.....…...

深入解析:Linux x86 stability和coredump

深入解析:Linux x86 stability和coredumppre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !impor…...

9.15更新linux命令

...

Jenkins 容器和 Kubernetes Agent

Jenkins 容器和 Kubernetes Agent安装 Jenkins [root@control-plane jenkins]# cat compose.yaml services:jenkins:# Jenkins 2.516.2image: jenkins/jenkins:ltsports:- "8080:8080"# https://github.com/jenkinsci/docker/blob/master/README.md#connecting-agen…...

LGP7916 [CSP-S 2021] 交通规划 学习笔记

LGP7916 [CSP-S 2021] 交通规划 学习笔记 Luogu Link 前言仔细读了十遍题面,硬是一个字都没和交通规划扯上关系,很有可能是出题人编了一个故事,发现编不下去了。——\(\texttt{OMG-WC}\)。题意简述 有一个 \(n\times m\) 个点的网格图。对于这个网格图的最外侧,有些网格线会…...

详细介绍:【Kubernetes】常见面试题汇总(十四)

详细介绍:【Kubernetes】常见面试题汇总(十四)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace…...

萤火虫文旅年票、为何能成为撬动万亿文旅市场的利器

萤火虫文旅年票隶属于四川红色猎人信息技术有限公司、成立于2020年7月24日、致力于为B端企业用户和C端个人用户提供超高性价比的景区门票.用互联网OTA技术整合了全国7000多家景点、用自助餐模式搭建了四款产品:省级版景区门票、大区版景区门票、全国版景区门票、以及企业定制版…...

Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用

Qt处理USB摄像头开发说明与QtMultimedia与V4L2融合应用牵牛老人 已于 2025-07-25 09:24:54 修改 阅读量645 收藏 10 点赞数 11 文章链接:https://blog.csdn.net/qianniulaoren/article/details/149138758一:USB摄像头开发基础与框架 1.1 QtMultimedia的优势与局限​ 跨平台兼…...

详细介绍:C++(静态函数)

详细介绍:C++(静态函数)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-siz…...

2025.9.15日软件工程学习日志

HBase科技成果管理系统设计与实现 今日设计一个基于HBase的科技成果信息填报系统。 系统分析与设计思路 前端需要实现科技成果信息填报表单,包含多种输入类型和验证 后端使用HBase作为数据库存储数据 需要实现数据的增删改查功能 成果编号需要按规则自动生成 HBase表设计: 表…...

RocketMQ快速实战及核心概念

RocketMQ学习笔记 一、MQ简介 MQ定义MQ:Message Queue,消息队列Message:消息,不同进程之间传递的数据Queue:队列,具有FIFO(先进先出)特性,用于缓存数据广义上,只要能实现消息跨进程传输及队列数据缓存,都可称为消息队列MQ的作用异步例子:快递员发快递,先放到菜鸟驿站…...

【南方科技大学主办】第五届电气工程与机电一体化手艺国际学术会议(ICEEMT 2025)

【南方科技大学主办】第五届电气工程与机电一体化手艺国际学术会议(ICEEMT 2025)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…...

为什么不建议在 Docker 中跑 MySQL?

前言 今天我们来聊聊一个很有趣的话题:为什么我不建议在Docker中运行MySQL数据库? 有些小伙伴在工作中可能为了部署方便,习惯将所有组件都容器化,但数据库真的适合放在容器里吗? 今天就专门跟大家一起聊聊这个话题,希望对你会有所帮助。 一、容器化与数据库:天生的矛盾?…...

reLeetCode 热题 100-1 指针283. 移动零 - MKT

reLeetCode 热题 100-1 指针283. 移动零 class Solution { public:void moveZeroes(vector<int>& nums) {// int cout_=0;// for(int i =0; i<nums.size();i++){// if(nums[i]==0){// cout_++;// }// }// std::cout<< " 0s all …...

解决c# DocX生成的word文档wps打开排版外边距错乱微软office正常问题

public void insertBreak(DocX document, String filename) { DocX tempDocx = DocX.Create(filename); setPageMargin(tempDocx); document.InsertDocument(tempDocx);document.InsertSectionPageBreak(true); }改为public vo…...

The 2025 ICPC Asia East Continent Online Contest (II)

The 2025 ICPC Asia East Continent Online Contest (II)比赛链接 Review 这场非常有参与感哈哈,因为我签到题 C 贪心写了两小时,中间下机若干次让队友过题,写完已经完全不知道队友进度是啥了,后续就当小黄鸭被带飞了哈哈。 Solution C. Jiaxun! 那我确实需要 jiaxun 额额贪…...

工厂方法模式(Factory Method) - 指南

工厂方法模式(Factory Method) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !importa…...

拾忆录

████,也即言多██,就是少点██,不容易发生██——来自于多种████的通理 择一███,遇一人██——收集自███,████ 知行合一心学理论——王阳明...

从零搭建RAG应用:跳过LangChain,掌握文本分块、向量检索、指代消解等核心技术实现

RAG(检索增强生成)本质上就是给AI模型外挂一个知识库。平常用ChatGPT只能基于训练数据回答问题,但RAG可以让它查阅你的专有文档——不管是内部报告、技术文档还是业务资料,都能成为AI的参考资源。 很多人第一反应是用LangChain或LlamaIndex这些现成框架,确实能快速搭起来。…...

python高阶技巧

闭包:在函数嵌套前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数叫做闭包 简单闭包: def outer(logo): def inner(msg): print(f"<{logo}>{msg}>{logo}") return inner fn1=outer("黑马程…...

机器视觉之图像处理篇 - 指南

机器视觉之图像处理篇 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-s…...

尝试hikari和jdbctemplate

试着基于jdbctemplate包装一个MysqlHelper类。连接池采用springboot默认的hikari。jdbctemplate提供基本的防注入,它的写法比jdbc好看,jdbc还需要putint,putstr。提供的另一个功能是结果集的转换。写完,测试代码的面貌如下:var sqlhp = new SqlHelper();sqlhp.configAddress…...

配置Nginx根据IP地址进行流量限制以及返回JSON格式数据

要在Nginx中根据IP地址进行流量限制并返回JSON格式数据,你需要结合Nginx的 ngx_http_limit_req_module模块和一些配置技巧。这个模块允许你基于定义的键值,比如IP地址,限制请求的速率。不过在进入细节前,别忘了备份你的Nginx配置文件 划重点:配置透视战斗护甲 (limit_req_…...

回归

最近因为████导致██发生████,长期的██也不是办法,我决定以███████发文。 我的很多比如███,███都发生了██,所以██的██████视█。 重新██...

CSS纯文本渐变动效

创建一个令人印象深刻的CSS文本渐变动效就像是在文字上施展魔法。想象你的文字就像是一幅幻灯片,色彩在背后流转,让每个字母都像是被彩虹绘制过一样。 为了让这种魔法发生,你需要进入CSS的巫术领地。我们将把渐变动效的制作分解为简单步骤,这样即使你不是CSS的大师,也能轻…...

泛微流程共享

第一步: 第二步:打开合同审批数据,点击右键,选择共享。 第三步:共享权限的查看,可见Giada没有查看权限。 第四步:添加权限,依次进入下面的选项。...