牛客周赛 Round 36

赛况

        C题可惜,比赛时模拟没有想明白,只对了一半,赛后看了大佬们的题解后恍然大悟,而F题是压根没思路,况且F题部分分也比较难拿。

题目列表

A-小红的数位删除

思路

        将读入的数字整除10做三次后输出即可

参考代码

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5+5,INF = 0x3f3f3f3f;
int n; 
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n;int cnt = 0;while(cnt!=3){cnt++;n/=10;}cout << n << '\n';return 0;
}

B-小红的小红矩阵构造

思路

        如果元素和不等于x,则输出wrong answer,否则判断其每行和每列的异或和是否与第一行和第一列相等,若不相等,则输出wrong answer,最后所有条件都满足,则输出accepted

参考题解

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e2+5,INF = 0x3f3f3f3f;
int a[N][N];
int n,m,x;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n >> m >> x;for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){cin >> a[i][j];}}int sum=0;for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){sum+=a[i][j];}}if(sum!=x){cout << "wrong answer\n";return 0;}int rowxor=0,columnxor=0;for(int i = 1;i<=m;i++) rowxor^=a[i][1];for(int i = 1;i<=n;i++) columnxor^=a[1][i];for(int i = 2;i<=n;i++){int nowxor=0;for(int j = 1;j<=m;j++){nowxor^=a[i][j];}if(nowxor!=rowxor){cout << "wrong answer\n";return 0;}}for(int i = 2;i<=m;i++){int nowxor=0;for(int j = 1;j<=n;j++){nowxor^=a[j][i];}if(nowxor!=columnxor){cout << "wrong answer\n";return 0;}}cout << "accepted\n";return 0;
}

C-小红的白色字符串

思路

        如果遇到大写字母,它前面若不是' '(空格),那么答案ans++,并且把当前大写字母用' '覆盖,最终输出ans即可

参考题解

#include <bits/stdc++.h>
using namespace std;
string s;
int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> s;int ans = 0;for(int i = 1;i<s.size();i++){if(s[i]>='A'&&s[i]<='Z'&&s[i-1]!=' '){ans++,s[i]=' ';}}cout << ans << '\n';return 0;
}

D-小红走矩阵

思路

        BFS模板题,直接全程默写

参考题解

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e3+5,INF = 0x3f3f3f3f;
struct Node{int x,y,s;
}t,t1;
char graph[N][N];
bool vis[N][N];
queue<Node> q;
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
int sx,sy,ex,ey;
int n,m;
void bfs(){sx=1,sy=1,ex=n,ey=m;t.x=sx,t.y=sy,t.s=0;q.push(t);vis[sx][sy]=1;while(!q.empty()){t = q.front();
//		cout << t.x << ' ' << t.y << '\n';q.pop();if(t.x==ex&&t.y==ey){cout << t.s << '\n';return;}for(int i = 0;i<4;i++){int u=t.x+dx[i],v=t.y+dy[i];if(u<1||u>n||v<1||v>m||vis[u][v]||graph[u][v]==graph[t.x][t.y]) continue;vis[u][v]=1;t1.x=u,t1.y=v,t1.s=t.s+1;q.push(t1);}}cout << "-1\n";
}
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n >> m;for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) cin >> graph[i][j];bfs();return 0;
}

E-小红的小红走矩阵

思路

        我们自己随便定一条步数介于n+m-2至n*m-2直接的一条通路即可,当然注意生成的字母最好稀疏一点,我找的路如下图。

        路的生成就是模拟遍历,确保第1、2、3行的第2至m-1列的字母都相同,其余拐点位置为上个位置的下一个字母,注意转换的时候对26取模,避免超出'a'到'z'的范围。剩余其他所有位置,循环从'a'到'z'生成即可。 

参考题解

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e3+5,INF = 0x3f3f3f3f,mod = 26;
char graph[N][N];
int n,m;int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n >> m;for(int i = 1;i<=m;i++) graph[1][i]='a'+(i-1)%mod;graph[2][m]='a'+(graph[1][m]-'a'+1)%mod;for(int i = m-1;i>=1;i--) graph[2][i]=graph[1][i];for(int i = m;i>=2;i--) graph[3][i]=graph[2][i];graph[3][1]='b';for(int i = 4;i<=n;i++) graph[i][1]='a'+(i-2)%mod;for(int i = 2;i<=m;i++) graph[n][i]='a'+(graph[n][1]-'a'+i-1)%mod;int cnt=0;for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){if(graph[i][j]>='a'&&graph[i][j]<='z') continue;if(cnt==26){cnt=0;}graph[i][j]='a'+cnt;cnt++;}}for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){cout << graph[i][j];}cout << '\n';}return 0;
}

F-小红的好子串询问

思路

        预处理出不是回文串的只含三个字母且不重复的字符串。修改和查询都使用树状数组实现

参考题解

(感谢橙名大佬牛客288141082号提供的题解)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;#define N 100000int i,j,k,n,m,t;string s,s1,_s[7]={"","red","rde","dre","der","erd","edr"};int f[7][N+50];void add(int f[],int x,int y){for(;x<=n;x+=(-x&x)){f[x]+=y;}}
int get(int f[],int x,int y=0){for(;x;x-=(-x&x)){y+=f[x];}return y;}int main(){ios::sync_with_stdio(0); cin.tie(0);cin>>n>>t>>s; s="$"+s;for(i=1;i<=n;i++){for(j=1;j<=6;j++){add(f[j],i,s[i]!=_s[j][i%3]);}}while(t--){int l,r,res,op;cin>>op;if(op==1){cin>>l>>s1;for(j=1;j<=6;j++){add(f[j],l,-(s[l]!=_s[j][l%3]));}s[l]=s1[0];for(j=1;j<=6;j++){add(f[j],l,(s[l]!=_s[j][l%3]));}}else{cin>>l>>r;res=1e9;for(i=1;i<=6;i++){res=min(res,get(f[i],r)-get(f[i],l-1));}cout<<res<<'\n';}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效管理百万级数据:MySQL备份与恢复实战指南

简介 在当今数字化时代&#xff0c;数据是企业不可或缺的核心资产之一&#xff0c;而MySQL作为一种流行的关系型数据库管理系统&#xff0c;其百万级数据的高效管理显得尤为重要。本实战指南将深入探讨MySQL备份与恢复的关键策略&#xff0c;为您提供全面而实用的解决方案。通…

streamlit学习-如何修改css样式

streamlit学习-如何修改css样式 效果图代码(srv.py)运行 streamlit默认的样式有时并不符合自己的要求。比如手机上的布局太浪费空间,我们希望一屏能放下所有的元素,本文演示了如何操作 效果图 代码(srv.py) import streamlit as st #1.31.1 import cv2 import numpy as np im…

实验二(二)OSPF路由协议基础实验

1.实验介绍 1.1关于本实验 开放式最短路径优先 OSPF(Open Shortest Path First)是IETF 组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。目前针对 IPv4 协议使用的是 OSPF Version 2(RFC2328);OSPF 作为基于链路状态的协议&#xff0c;OSPF 具有以下优…

OpenFeign的常规使用

架构: 一.新建module 引入依赖: <!--openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> yml配置; server:port: 80spring:applicati…

计算机网络(五)

网络层 网络层的主要目的是实现网络互连&#xff0c;进而实现数据包在各网络之间的传输。 要实现网络层&#xff0c;主要解决三个问题&#xff1a; ①网络层向运输层提供怎样的服务&#xff1f;&#xff08;“可靠传输“、”不可靠传输“&#xff09; ②网络层寻址 ③路由选择…

2024年k8s最新版本安装教程

k8s安装教程 1 k8s介绍2 环境搭建2.1 主机准备2.2 主机初始化2.2.1 安装wget2.2.2 更换yum源2.2.3 常用软件安装2.2.4 关闭防火墙2.2.5 关闭selinux2.2.6 关闭 swap2.2.7 同步时间2.2.8 修改Linux内核参数2.2.9 配置ipvs功能 2.3 容器安装2.3.1 设置软件yum源2.3.2 安装docker软…

动态规划(蓝桥杯 C++ 题目 代码 注解)

目录 介绍&#xff1a; 题目一&#xff08;数字三角形&#xff09;&#xff1a; 题目二&#xff08;跳跃&#xff09;&#xff1a; 题目三&#xff08;背包问题类型&#xff09;&#xff1a; 题目四&#xff08;蓝肽子序列&#xff09;&#xff1a; 题目五&#xff08;合唱…

学习笔记。。。

1.字符串的拼接 1.sprintf() 往字符串的前面或中间、后面拼接一个字符串。 2.strncpy()用来复制字符串的前n个字符 //dest为目标数组&#xff0c;src为源数组&#xff0c;n为要复制的字符个数 2.char* My_strncpy(char* dest, const char* src, int n) 3.char *strcat(ch…

代码训练LeetCode(7)删除有序数组中的重复项

代码训练(7)LeetCode之删除有序数组中的重复项 Author: Once Day Date: 2024年3月10日 漫漫长路&#xff0c;才刚刚开始… 全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客 参考文章: 26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09;力扣…

【病毒查杀】“PE启动盘+360杀毒软件”对硬盘病毒查杀

通过本步骤&#xff0c;用户可使用WinPE版本360系统急救箱软件对主板硬盘进行病毒木马扫描和杀毒操作。 360系统急救箱&#xff0c;这款软件是360官方推出的一款杀毒工具箱&#xff0c;可以帮助用户仅在WinPE环境下就可对硬盘进行病毒木马查杀&#xff0c;可能查杀过后因病毒木…

网络安全: Kali Linux 进行 MSFvenom 程序利用

目录 一、实验 1.环境 2. Kali Linux 进行 MSFvenom 程序利用 3. 创建计划任务自动运行 MSFvenom 程序 二、问题 1.在线加密解密 2.MSF 运行失败 3.MobaXterm 连接Ubuntu 失败 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux20…

STM32单片机基本原理与应用(十一)

语音识别实验 此实验采用STM32核心板 LD3320模块&#xff0c;通过初始化LD3320并写入待识别关键词&#xff0c;对麦克风说出相应关键词&#xff0c;实现实训平台上的流水灯相应变化的效果。 LD3320 是一颗基于非特定人语音识别 &#xff08;SI-ASR&#xff1a;Speaker-Indepen…

AI训练数据处理和读取

AI训练数据处理和读取 AI数据处理 AI数据处理概述 AI数据处理是指对原始数据进行一系列的操作&#xff0c;以便机器学习算法能够从中提取有用的信息&#xff0c;进而进行模型的训练、验证和部署。数据处理是机器学习流程中的关键步骤&#xff0c;其质量直接影响到模型的性能…

手把手一起开发SV4E-I3C设备(四)

JEDEC DDR5 SPD Hub Devices例程 所有例程&#xff0c;SV4E-I3C设备连接器件均为SPD5芯片&#xff0c;Reg表示MR寄存器&#xff0c;Mem表示NVM存储器 1、ENEC CCC ENEC 启用事件中断&#xff0c;ENEC CCC 仅在设备置于 I3C 基本模式后才受支持。当 SPD5 注册 ENEC CCC 时&am…

【CSS面试题】高度塌陷问题及解决

什么情况下产生 (when 父盒子没有定义高度&#xff0c;但是子元素有高度&#xff0c;希望用子盒子撑起父盒子的高度&#xff0c;但是子盒子添加了浮动属性之后&#xff0c;父盒子高度为0 <template><div class"father"><div class"son"&…

算法第二十六天-删除有序数组中的重复项Ⅱ

删除有序数组中的重复项 题目要求 解题思路 题目要求中提到原地修改&#xff0c;那么肯定需要一个指针指向当前即将放置元素的位置&#xff0c;需要另外一个指针向后遍历所有元素&#xff0c;所以[双指针]解法呼之欲出。 慢指针slow&#xff1a;指向当前元素放置的位置&…

F - Earn to Advance

解题思路 由于对于一点不知道后面得花费&#xff0c;所以无法决策当前是否要停下赚钱或要停下多久考虑一点&#xff0c;可以由其左上方的所有点到达所以从往前推&#xff0c;得出到的总花费然后考虑从之后不赚钱直接到最终所用次数和剩余钱若存在&#xff0c;在后面点赚钱更优…

Python错题集-8:AttributeError(找不到对应的对象的属性)

1问题描述 AttributeError: AxesSubplot object has no attribute arc 2代码详情 import matplotlib.pyplot as plt# 创建一个新的图形和坐标轴 fig, ax plt.subplots()# 定义弧线的参数 center (0.5, 0.5) # 圆心坐标 (x, y) width 1.0 # 半径 height 0.5 # 半径 ang…

沁恒CH32V307VCT6开发板记录---kalrry

沁恒CH32V307VCT6开发板记录---kalrry 一、官网申请开发板二、环境准备图一 一、官网申请开发板 1.沁恒官网 二、环境准备 1.数据手册&#xff1a;CH32V307DS0.PDF&#xff0c;CH32FV2x_V3xRM.PDF 2.CH32V307评估板说明及参考应用例程&#xff1a;CH32V307EVT_ZIP 3.集成开…

腾讯云拼了99元服务器老用户能买,续费不涨价!

良心腾讯云推出99元一年服务器&#xff0c;新用户和老用户均可以购买&#xff0c;续费不涨价&#xff0c;续费也是99元&#xff0c;配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff1a;优惠价格99元一年&#xff0c;续费99元&#xff0c;官方活动页面 txybk.com/g…