Codeforces Round 954 (Div. 3)

这里写自定义目录标题

  • A. X Axis
    • 题意:
    • 题解:
    • 代码:
  • B. Matrix Stabilization
    • 题意:
    • 题解:
    • 代码:
  • C. Update Queries
    • 题意:
    • 题解:
    • 代码:
  • D. Mathematical Problem
    • 题意:
    • 题解:
    • 代码:

A. X Axis

题意:

你得到了三个点 x 1 x_{1} x1 x 2 x_{2} x2 x 3 x_{3} x3和 你需要求出一个点使得 x 1 x_{1} x1 x 2 x_{2} x2 x 3 x_{3} x3与这个点的距离和最小。

题解:

暴力枚举各个点。

代码:

#include<iostream>
#include<algorithm>
#include<vector>
#define int long long
 
using namespace std;
 
void solve(){
	int x,y,z;
	
	cin>>x>>y>>z;
	
	int ans=0x3f3f3f3f;
	
	int l=min(min(x,y),z);
	int r=max(max(x,y),z);
	
	for(int i=l;i<=r;i++) ans=min(ans,abs(x-i)+abs(y-i)+abs(z-i));
	
	cout<<ans<<endl;
}
signed main(){
	int t;
	
	cin>>t;
	
	while(t--) solve();
	
	return 0;
}

B. Matrix Stabilization

题意:

给你一个大小为 n × m n \times m n×m 的矩阵,其中行的编号从上到下为 1 1 1 n n n ,列的编号从左到右为 1 1 1 m m m 。位于 i i i -th 行和 j j j -th 列交点上的元素用 a i j a_{ij} aij 表示。

考虑稳定矩阵 a a a 的算法:

  1. 找到单元格 ( i , j ) (i, j) (i,j) ,使其值严格大于所有相邻单元格的值。如果没有这样的单元格,则终止算法。如果有多个这样的单元格,则选择 i i i 值最小的单元格;如果仍有多个单元格,则选择 j j j 值最小的单元格。
  2. 设置 a i j = a i j − 1 a_{ij} = a_{ij} - 1 aij=aij1
  3. 转到步骤 1 1 1

在这个问题中,如果单元格 ( a , b ) (a, b) (a,b) ( c , d ) (c, d) (c,d) 有一个共同的边,即 ∣ a − c ∣ + ∣ b − d ∣ = 1 |a - c| + |b - d| = 1 ac+bd=1 ,那么这两个单元格就是邻居。

您的任务是在执行稳定算法后输出矩阵 a a a 。可以证明这种算法不可能运行无限次迭代。

给你一个大小为 n ∗ m n * m nm 的矩阵,其中行的编号从上到下为 1 1 1 n n n ,列的编号从左到右为 1 1 1 m m m 。位于 i i i -行和 j j j -列交叉处的元素用 a _ i j a\_{ij} a_ij 表示。考虑稳定矩阵 a a a 的算法:1.找到单元格 ( i , j ) (i, j) (i,j) 使其值严格大于所有相邻单元格的值。如果没有这样的单元格,则终止算法。如果有多个这样的单元格,则选择 i i i 值最小的单元格;如果仍有多个单元格,则选择 j j j 值最小的单元格。2.设置 a i , j = a i , j − 1 a_{i,j} = a_{i,j} - 1 ai,j=ai,j1 。3.转到步骤 1 1 1 .在此问题中,如果单元格 ( a , b ) (a, b) (a,b) ( c , d ) (c, d) (c,d) 有一个公共边,即 ∣ a − c ∣ + ∣ b − d ∣ = 1 |a - c| + |b - d| = 1 ac+bd=1 ,则这两个单元格被视为相邻单元格。您的任务是在执行稳定算法后输出矩阵 a a a 。可以证明这种算法不可能运行无限次迭代。

题解:

从左上角枚举各个点,判断当前点是否需要修改,若需要则将其修改为相邻点的最大值即可。

代码:

#include<iostream>
#include<algorithm>
#include<vector>
#define int long long
 
using namespace std;
 
const int N=110;
int a[N][N];
 
void solve(){
	int n,m;
	
	cin>>n>>m;
	
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++) cin>>a[i][j];
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			int temp=-0x3f3f3f3f;
			int cnt0=0;
			int cnt1=0;
			if(i-1>=1){
				cnt0++;
				temp=max(temp,a[i-1][j]);
				if(a[i-1][j]<a[i][j]) cnt1++;
			}
			if(i+1<=n){
				cnt0++;
				temp=max(temp,a[i+1][j]);
				if(a[i+1][j]<a[i][j]) cnt1++;
			}
			if(j-1>=1){
				cnt0++;
				temp=max(temp,a[i][j-1]);
				if(a[i][j-1]<a[i][j]) cnt1++;
			}
			if(j+1<=m){
				cnt0++;
				temp=max(temp,a[i][j+1]);
				if(a[i][j+1]<a[i][j]) cnt1++;
			}
			if(cnt0==cnt1) a[i][j]=temp;
		}
	
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++) cout<<a[i][j]<<" ";
		cout<<endl;
	}
}
signed main(){
	int t;
	
	cin>>t;
	
	while(t--) solve();
	
	return 0;
}

C. Update Queries

题意:

给定一个长度为n的字符串 s s s和长度为 m m m i n d ind ind数组,以及字符串 c c c,你可以任意安排 i n d ind ind数组和 c c c字符串的顺序,然后有m次操作,第i次操作,可以将 s i n d i s_{ind_i} sindi的值更改为 c i c_{i} ci,问m次操作后,要求经过 m m m 次操作后的字符串 s s s 的字典序最小,输出这个 s s s

题解:

c c c i n d ind ind排序,遍历 i n d ind ind数组, c c c的首元素代替 s s s中的元素,经过m次替换就是最小的字典序。

代码:

#include<iostream>
#include<algorithm>
#include<vector>

#define int long long

using namespace std;

void solve() 
{
	int n;
	cin >> n;
	string s;
	cin >> s;
	int mask[n];
	for(int i = 0 ; i < n ; i ++){
		mask[i] = s[i] - '0';
	}	
	int ans = 101010;
	for(int i = 1 ; i < n ; i ++){
		vector<int>tmp;
		int tot = 0;
		for(int j = 0 ; j < n ; j ++){
			if(j == i - 1){
				int x = mask[j] * 10 + mask[j + 1];
				tmp.push_back(x);
				j++;
			}
			else{
				tmp.push_back(mask[j]);
			}
		}
		for(auto it : tmp){
			cout<<it<<" ";
			if(it == 0){
				cout << 0 << endl;
				return;
			}
			if(it == 1){
				continue;
			}
			else{
				tot += it;
			}
		}
		cout<<endl;
		if(tot == 0) tot++;
		ans = min(ans , tot);
	}
	cout << ans << endl;
}
signed main(){
	int t;
	
	cin>>t;
	
	while(t--) solve();
	
	return 0;
}

D. Mathematical Problem

题意:

给定一个长度为n的全为数字的字符串,你可以在字符串中添加n-2个运算符( × × ×或者 + + ),使得字符串变为一个合法表达式,求出该表达式最小的结果。

题解:

长度为 2 2 2 时,输出取出前导零的原数组即可,当长度大于 2 2 2 时,原字符串可以分为 n − 1 n-1 n1 个数字,然后需要 n − 2 n-2 n2 个运算符将其连接,因此有一个数字是两位数,其他的均为 1 1 1 位数,要使得最后的结果最小,因此当其中一个数字为 1 1 1 的时候运算符为乘法,其他的均为加法。

代码:

#include<iostream>
#include<algorithm>
#include<vector>

#define int long long

using namespace std;

void solve() 
{
	int n;
	cin >> n;
	string s;
	cin >> s;
	int mask[n];
	for(int i = 0 ; i < n ; i ++){
		mask[i] = s[i] - '0';
	}	
	int ans = 101010;
	for(int i = 1 ; i < n ; i ++){
		vector<int>tmp;
		int tot = 0;
		for(int j = 0 ; j < n ; j ++){
			if(j == i - 1){
				int x = mask[j] * 10 + mask[j + 1];
				tmp.push_back(x);
				j++;
			}
			else{
				tmp.push_back(mask[j]);
			}
		}
		for(auto it : tmp){
			cout<<it<<" ";
			if(it == 0){
				cout << 0 << endl;
				return;
			}
			if(it == 1){
				continue;
			}
			else{
				tot += it;
			}
		}
		cout<<endl;
		if(tot == 0) tot++;
		ans = min(ans , tot);
	}
	cout << ans << endl;
}
signed main(){
	int t;
	
	cin>>t;
	
	while(t--) solve();
	
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/779138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络浅谈—什么是 OSI 模型?

开放系统通信&#xff08;OSI&#xff09;模型是一个代表网络通信工作方式的概念模型。 思维导图 什么是 OSI 模型&#xff1f; 开放系统互连 (OSI) 模型是由国际标准化组织创建的概念模型&#xff0c;支持各种通信系统使用标准协议进行通信。简单而言&#xff0c;OSI 为保证…

读书到底有什么意义?从笨小孩到名人的逆袭之路

点击上方△腾阳 关注 作者 l 腾阳 转载请联系授权 读书到底有什么意义&#xff1f; 有一个鸟语花香的农场里&#xff0c;住着老农夫和他的小孙子。 老农夫经常在清晨会坐在窗边&#xff0c;捧着厚厚的《圣经》&#xff0c;沉浸在知识的海洋里。 小孙子问他&#xff1a;…

【Linux】文件系统6——理解文件操作

目录 1.文件的读取 1.1.目录 1.2.文件 1.3.目录树读取 1.4.文件系统大小与磁盘读取性能 2.增添文件 2.1.数据的不一致&#xff08;Inconsistent&#xff09;状态 2.2.日志式文件系统&#xff08;Journaling filesystem&#xff09; 3.Linux文件系统的运行 4、文件的删…

Selenium的自动化测试技巧有多少?【建议收藏】

Selenium是一个用于自动化Web应用程序测试的工具。它提供了一组API&#xff0c;允许用户与Web浏览器进行交互&#xff0c;来执行各种自动化测试任务。本文将从零开始&#xff0c;详细介绍Selenium的自动化测试技巧。 第一步&#xff1a;安装Selenium 首先&#xff0c;您需要安…

【鸿蒙学习笔记】Stage模型工程目录

官方文档&#xff1a;应用配置文件概述&#xff08;Stage模型&#xff09; 目录标题 FA模型和Stage模型工程级目录模块级目录app.json5module.json5程序执行流程程序基本结构开发调试与发布流程 FA模型和Stage模型 工程级目录 模块级目录 app.json5 官方文档&#xff1a;app.j…

WAIC:生成式 AI 时代的到来,高通创新未来!

目录 01 在终端侧算力上&#xff0c;动作最快的就是高通 02 模型优化&#xff0c;完成最后一块拼图 在WAIC上&#xff0c;高通展示的生成式AI创新让我们看到了未来的曙光。 生成式 AI 的爆发带来了意想不到的产业格局变化&#xff0c;其速度之快令人惊叹。 仅在一个月前&…

android之蓝牙遥控器新增键值

文章目录 简述连接蓝牙代码流程总结简述 使用android 10平台来适配蓝牙遥控器新增的键值 连接蓝牙 当使用遥控器与蓝牙进行配对成功后,就可以通过getevent获取蓝牙打印的信息,如下所示 其中000700a0是发送过来的协议(0007)和码值(00a0)的组合。0xfa是驱动定义好的值,如果…

AI智能歌曲创作源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 本AI智能歌曲创作源码系统集成了深度学习、自然语言处理和音乐理论&#xff0c;旨在通过用户输入的关键词、情感色彩或音乐片段&#xff0c;自动生成具有创意且风格多样的音乐作品。系统核心由两大部分构成&#xff1a;前端用户界面与后端音乐生成引擎。前端负责接收…

什么是 VueQuill(前端的富文本编辑器)?

什么是 VueQuill&#xff1f; 1. 简介 VueQuill 是 Vue.js 的一个富文本编辑器插件&#xff0c;它基于 Quill 编辑器构建&#xff0c;提供了简洁且功能强大的富文本编辑功能。Quill 是一个现代化的富文本编辑器&#xff0c;提供丰富的文本编辑能力&#xff0c;支持多种格式和…

【学习笔记】程序设计竞赛

程序设计竞赛 文章目录 程序设计竞赛0x00 基本操作指南0x01 算法分析0x02 STL和基本数据结构栈队列集合map 0x03 排序插入排序归并排序&#xff08;Merge Sort)快速排序 0x04 搜索技术BFSDFS回溯与剪枝 深度迭代ID A*A star双向广搜 0x05 递推方程0x06 高级数据结构并查集二叉树…

【强化学习的数学原理】课程笔记--3(蒙特卡洛方法)

目录 蒙特卡洛方法MC Basic算法sparse reward MC Greedy 算法样本使用效率MC ϵ \epsilon ϵ-Greedy 算法一些例子 蒙特卡洛方法 第二节 推导贝尔曼最优公式中的&#xff1a; q π k ( s , a ) ∑ r P ( r ∣ s , a ) r γ ∑ s ′ P ( s ′ ∣ s , a ) v π k ( s ′ ) q…

CMS Made Simple v2.2.15 远程命令执行漏洞(CVE-2022-23906)

前言 CVE-2022-23906 是一个远程命令执行&#xff08;RCE&#xff09;漏洞&#xff0c;存在于 CMS Made Simple v2.2.15 中。该漏洞通过上传头像功能进行利用&#xff0c;攻击者可以上传一个经过特殊构造的图片文件来触发漏洞。 漏洞详情 CMS Made Simple v2.2.15 中的头像上…

NAS 必备导航页 Homepage 外观简约但功能丰富

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 NAS 上的应用部署多了之后,不同的服务对应的端口很难记住,在内网中使用,一般也不会绑定域名。 此时就需要有一个导航页将 NAS 上部署的所有服务都罗列出来,方便我们直接点击访问对应的服务。 今天给大家介绍的…

电商利器——淘宝商品月销量API接口解析

在电商时代&#xff0c;数据就是金钱。对于淘宝商家而言&#xff0c;掌握商品的销量数据无异于掌握了市场的脉搏。如今&#xff0c;淘宝商品月销量API接口的出现&#xff0c;联讯数据让商家如虎添翼&#xff0c;能够更加精准地把握市场动态&#xff0c;优化商品策略。 淘宝商…

强技能 展风采 促提升——北京市大兴区餐饮行业职工技能竞赛精彩呈现

6月19日&#xff0c;由大兴区总工会、区商务局、青云店镇人民政府联合主办&#xff0c;区服务工会、区餐饮行业协会承办的“传承中国技艺&#xff0c;打造新一代餐饮工匠”2024年大兴区餐饮行业职工职业技能竞赛决赛在北京华联创新学习中心隆重开幕。区总工会副主席郝泽宏&…

力扣5----最长回文子串

给你一个字符串 s&#xff0c;找到 s 中最长的回文子串 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;s "cbbd" 输出…

均匀采样信号的鲁棒Savistky-Golay滤波(MATLAB)

S-G滤波器又称S-G卷积平滑器&#xff0c;它是一种特殊的低通滤波器&#xff0c;用来平滑噪声数据。该滤波器被广泛地运用于信号去噪&#xff0c;采用在时域内基于多项式最小二乘法及窗口移动实现最佳拟合的方法。与通常的滤波器要经过时域&#xff0d;频域&#xff0d;时域变换…

Docker:Docker网络

Docker Network 是 Docker 平台中的一项功能&#xff0c;允许容器相互通信以及与外界通信。它提供了一种在 Docker 环境中创建和管理虚拟网络的方法。Docker 网络使容器能够连接到一个或多个网络&#xff0c;从而使它们能够安全地共享信息和资源。 预备知识 推荐先看视频先有…

ABAP 生成word文档

1.创建模板 通过开发工具->空间->格式文本为word添加变量 选中要设为变量的文本&#xff0c;点击格式文本&#xff0c;然后在属性页签设置变量名 模板使用示例参考ZABAPDOCX包下的模板 2. 代码生成 参考ZABAPDOCX包下示例程序&#xff0c;可直接执行下载word文档 如果…

分支与循环(二)

目录 1.switch语句 1)switch语法形式 2&#xff09;if语句和switch语句的对比 3) switch语句中的break 4) switch语句中的default 5) switch语句中的case和default的顺序问题 2.while循环 1) if 和 while的对比 2) while语句的执行流程​编辑 3&#xff09;while循环的…