Educational Codeforces Round 174 (Rated for Div. 2)(ABCD)
A. Was there an Array?
翻译:
对于整数数组
,我们将其相等特征定义为数组
,其中,如果数组 a 的第 i 个元素等于其两个相邻元素,则
;如果数组 a 的第 i 个元素不等于其至少一个相邻元素,则
。
例如,对于数组 [1,2,2,2,3,3,4,4,4],相等特征为 [0,1,0,0,0,0,1,1]。
给你数组
。你的任务是确定是否存在这样一个数组 a具有相同特征。
思路:
如果b存在101则错误。
实现:
#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int n; cin>>n;vector<int>b(n-2);for (int i=0;i<n-2;i++) cin>>b[i];if (n<=4){cout<<"YES"<<endl;}else{for (int i=0;i<n-4;i++){if (b[i]==1 && b[i+1]==0 && b[i+2]==1){cout<<"NO"<<endl;return;}}cout<<"YES"<<endl;}
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}
B. Set of Strangers
翻译:
给你一张 n 行 m 列的表格。最初,第 i 行第 j 列的单元格的颜色为
。
如果两个单元格不共用一条边,那么这两个单元格就是陌生人。陌生人可以用角接触。
如果单元格集合中的所有单元格对都是陌生人,我们就说这个单元格集合是陌生人集合。根据定义,不超过一个单元格的集合就是陌生人集合。
在一个步骤中,你可以选择任意一个陌生人集合,使其中的所有单元格都具有相同的颜色,然后给所有单元格涂上其他颜色。你可以选择得到的颜色。
要使整个表格的颜色相同,最少需要多少步?
思路:
对于所有相同颜色的块,如果存在相邻的块,则要2次操作使所有块变为同一颜色,否则只用1次操作。
得到所有颜色的变换操作数,再减去所有颜色转换操作数中的最大值。
实现:
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
vector<vector<int>> direct = {{0,1},{0,-1},{1,0},{-1,0}};
void solve(){int n,m; cin>>n>>m;vector<int> cnts(n*m+1,0);vector<vector<int>> graph(n+2,vector<int>(m+2,0));for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){cin>>graph[i][j];}}int mx = 0,summ = 0;for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){int f = 0;for (auto d:direct){if (graph[i][j]==graph[i+d[0]][j+d[1]]){f = 1;break;}}cnts[graph[i][j]] = max(1+f,cnts[graph[i][j]]);}}for (int i=1;i<=n*m;i++){summ+=cnts[i];mx = max(mx,cnts[i]);}cout<<summ-mx<<endl;
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}
C. Beautiful Sequence
翻译:
如果下列条件成立,我们就称一个整数序列为优美序列:
- 它的长度至少为 3;
- 除第一个元素外,每个元素的左边都有一个比它小的元素;
- 除最后一个元素外,每个元素的右边都有一个比它大的元素;
例如,[1,4,2,4,7] 和 [1,2,4,8] 很美,但 [1,2]、[2,2,4] 和 [1,3,5,3] 却不美。
回想一下,子序列是指在不改变其余元素顺序的情况下,通过删除某些元素可以从另一个序列得到的序列。
给你一个大小为 n 的整数数组 a,其中每个元素都是从 1 到 3。你的任务是计算数组 a 的优美子序列的个数。
思路:
按照条件优美序列为122...23。求满足条件的序列数量。使用dp状态机。
dfs( i , k ) 为[ : i ]中以k为结尾的序列数量。
递推公式:
dfs( i , k) = dfs( i-1 , k);
当k==3时,如果a[i]==3,则当前3与前面的2结尾数字匹配 dfs(i , k)+=dfs(i-1 , 2)
当k==2时,如果a[i]==2,则当前2与前面的1或2结尾数字匹配 dfs(i , k) += dfs(i-1 , 1)
当k==1时,如果a[i]==1,1开头的数量+1 dfs( i , k )++;
边界条件:
if (i<0) return 0;
实现:
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 998244353;
void solve(){ll n; cin>>n;vector<ll> a(n);for (ll i=0;i<n;i++) cin>>a[i];vector<vector<ll>> memo(n,vector<ll>(4,-1));// dp状态机:[:i] 中以 k 结尾的 子串数量auto dfs = [&](auto&& dfs,ll i,ll k)->ll{if (i<0) return 0;ll &res = memo[i][k];if (res!=-1) return res;res = dfs(dfs,i-1,k);if (k==3 && a[i]==3){res = (res+dfs(dfs,i-1,2))%mod;}else if (k==2 && a[i]==2){res = (res+dfs(dfs,i-1,2)+dfs(dfs,i-1,1))%mod;}else if (k==1 && a[i]==1){res += 1;}return res;};cout<<dfs(dfs,n-1,3)<<endl;
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}
D. Palindrome Shuffle
翻译:
给你一个由小写拉丁字母组成的字符串 s。
您可以对字符串 s 执行以下操作:选择 s 的一个连续子串(可能为空),然后将其洗码(按您的意愿重新排列子串中的字符)。
回顾一下,回文字符串是指从第一个字符到最后一个字符以及从最后一个字符到第一个字符的读法相同的字符串。例如,字符串 a、bab、acca、bcabcbacb 是回文字符串,但字符串 ab、abbbaa、ccbb 不是回文字符串。
您的任务是确定子串的最小可能长度,必须在该子串上执行上述操作才能将给定的字符串 s 转换成一个回文字符串。
思路:
向左右指针去除左右边界相同的字符,剩余的部分 s 为由左端点开始重排或从右端点开始重排。对 s 进行中心扩展得到其最大的回文,如果回文的左剩余与右剩余部分进行重排后相同则,则对这些剩余部分进行重排即可。否则要重拍的部分必定在一半s以上,记录 s 的每种字符的位置,比较每种字符要重排的最大位置。
实现:
#include <bits/stdc++.h>
using namespace std;int main () {ios_base::sync_with_stdio(0); cin.tie(0);int T;cin >> T;while (T--) {string s;cin >> s;int n = s.size();int l = 0, r = n-1;while (l < r && s[l] == s[r]) {l++;r--;}if (l > r) {cout << "0\n";continue;}s = s.substr(l, r-l+1);n = s.size();l = n/2-1, r = n/2;while (l >= 0 && s[l] == s[r]) {l--;r++;}string L = s.substr(0, l+1);string R = s.substr(r);sort(L.begin(), L.end());sort(R.begin(), R.end());if (L == R) {cout << l+1 << '\n';continue;}int ans = n;for (int _ = 0; _ < 2; _++) {vector<vector<int>> pos(26);int res = 0;for (int i = 0; i < n; i++) {pos[s[i]-'a'].push_back(i);}for (vector<int>& v: pos) {if (v.empty()) continue;res = max(res, v[(int)v.size()/2-1]+1);}ans = min(ans, res);reverse(s.begin(), s.end());}cout << ans << '\n';}
}
有建议可以评论,我会积极改进qwq。
相关文章:
Educational Codeforces Round 174 (Rated for Div. 2)(ABCD)
A. Was there an Array? 翻译: 对于整数数组 ,我们将其相等特征定义为数组 ,其中,如果数组 a 的第 i 个元素等于其两个相邻元素,则 ;如果数组 a 的第 i 个元素不等于其至少一个相邻元素,则 …...

基于知识图谱的问答系统:后端Python+Flask,数据库Neo4j,前端Vue3(提供源码)
基于知识图谱的问答系统:后端PythonFlask,数据库Neo4j,前端Vue3 引言 随着人工智能技术的不断发展,知识图谱作为一种结构化的知识表示方式,逐渐成为问答系统的重要组成部分。本文将介绍如何构建一个基于知识图谱的问答…...
面试知识点2
文章目录 1. Linux 与 DockerLinux 基本指令VMware 安装 CentOSDocker 拉取镜像创建容器、部署 Spring Boot 项目 2. 关系型数据库 MySQL数据库语法多表关联查询数据库索引 3. 事务与死锁事务的隔离级别死锁的原因和避免方法 4. 排序算法与数据结构二分查找快速排序常见数据结构…...

Django项目之订单管理part1
一.前言 我们前面把django的常用知识点给讲完了,现在我们开始项目部分,项目是一个订单管理系统,我们同时也会在项目之中也会讲一些前面没有用到的知识点。 项目大概流程如下: 核心的功能模块: 认证模块,用…...

基于SSM+Vue的智能汽车租赁平台设计和实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…...

deepseek本地调用
目录 1.介绍 2.开始调用 2.1模型检验 2.2 通过url调用 3.总结 1.介绍 这篇博客用来教你如何从本地调用ollama中deepseek的模型接口,直接和deepseek进行对话。 2.开始调用 2.1模型检验 首先要保证ollama已经安装到本地,并且已经下载了deepseek模型…...

文件同步工具哪家强?FreeFileSync 免费无限制
FreeFileSync 是一款备受推崇的开源文件同步与备份软件,凭借其卓越的功能和简洁直观的界面,赢得了全球用户的青睐。该软件不仅支持跨平台操作,兼容 Windows、macOS 和 Linux 系统,还能帮助用户在不同设备之间无缝同步文件…...

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计
一、项目背景 在某工业生产园区的供水系统中,为了精确监测和控制各个生产环节的用水流量,需要对分布在不同区域的多个流量计进行集中管理。这些流量计原本采用 F - net 协议进行数据传输,但园区的监控系统基于 Modbus TCP 协议进行数据交互&…...

Coze扣子怎么使用更强大doubao1.5模型
最近,豆包刚刚发布了最新的doubao1.5系列模型,并且加量不加价。 在性能极大进步的情况下,价格还与之前一致。真是业界良心了。 在同样的价格下,肯定要使用性能更强大的模型嘛 于是我准备把所有的智能体和工作流切换到doubao1.5…...
layui 远程搜索下拉选择组件(多选)
模板使用(lay-module/searchSelect),依赖于 jquery、layui.dist 中的 dropdown 模块实现(所以data 格式请参照 layui文档) <link rel"stylesheet" href"layui-v2.5.6/dist/css/layui.css" /&g…...

嵌入式学习(18)---Linux文件编程中的进程
一、进程的概念 进程:(用来描述 程序动态执行的过程,方便操作系统管理的) 进行中的程序 程序的一次执行过程 (内存 CPU) 程序的实例 程序 ----加载到内存----> 进程 应用场景: 实现并发 同一时刻 同时发生 并行 …...

一.AI大模型开发-初识机器学习
机器学习基本概念 前言 本文主要介绍了深度学习基础,包括机器学习、深度学习的概念,机器学习的两种典型任务分类任务和回归任务,机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…...
RoCE和 TCP的区别
RoCE(RDMA over Converged Ethernet)和 TCP(Transmission Control Protocol)都是用于数据传输的协议,但它们在多个方面存在显著区别,以下为你详细介绍: 设计目标 RoCE:主要设计目标…...

勒索病毒攻击:如何应对和恢复
近年来,勒索病毒(Ransomware)已经成为全球信息安全领域最具破坏力的威胁之一。无论是个人用户,还是大中型企业,甚至政府机构,勒索病毒的攻击频率和破坏性日益增加。2020年及2021年,勒索病毒攻击不仅数量激增,且其攻击手法、目标和传播方式也变得更加复杂、精密和具有针…...
解决MySQL错误:You can‘t specify target table ‘xxx‘ for update in FROM clause
目录 错误复现场景原因分析解决方案方法1:使用派生表(推荐)方法2:改用JOIN操作方法3:使用临时表 总结 在编写MySQL的UPDATE或DELETE语句时,如果子查询中直接引用了要操作的目标表,可能会遇到一个…...
在Linux上安装和使用Docker
在Linux上安装和使用Docker:一步步指南 Docker是一种流行的容器化平台,它可以帮助开发者轻松构建、部署和运行应用程序。在本文中,我们将介绍如何在Linux系统上安装Docker,并提供一些常用的Docker命令和使用说明。 1. 安装Docke…...

【Git】四、标签管理
文章目录 Ⅰ. 理解标签Ⅱ. 创建标签① 轻量级标签② 含附注类标签 Ⅲ. 操作标签 Ⅰ. 理解标签 标签 tag ,可以简单的理解为是 对某次 commit 的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次 com…...

elementui中aria-hidden报错
浏览器检查的原因,不影响功能,但会在控制台报红 解决办法: 在对应元素设置display:none .el-radio__original {display: none !important;}...

DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

【MySQL】简单掌握数据类型与表操作,让数据库性能飞跃
个人主页:♡喜欢做梦 欢迎 👍点赞 ➕关注 ❤️收藏 💬评论 目录 🌳一、数据类型 🍃1.数值类型 🍂整型类型 🍂浮点型类型 🍂定点数类型 🍃2.字符串类型 3.&am…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)
引言 在嵌入式系统中,用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例,介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单,执行相应操作,并提供平滑的滚动动画效果。 本文设计了一个…...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...
八、【ESP32开发全栈指南:UDP客户端】
1. 环境准备 安装ESP-IDF v4.4 (官方指南)确保Python 3.7 和Git已安装 2. 创建项目 idf.py create-project udp_client cd udp_client3. 完整优化代码 (main/main.c) #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h&…...

【Axure高保真原型】图片列表添加和删除图片
今天和大家分享图片列表添加和删除图片的原型模板,效果包括: 点击图片列表的加号可以显示图片选择器,选择里面的图片; 选择图片后点击添加按钮,可以将该图片添加到图片列表; 鼠标移入图片列表的图片&…...