牛客周赛 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 100000
 
int 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';
        }
    }
}

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

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

相关文章

【数据结构】详解时间复杂度和空间复杂度的计算

一、时间复杂度&#xff08;执行的次数&#xff09; 1.1时间复杂度的概念 1.2时间复杂度的表示方法 1.3算法复杂度的几种情况 1.4简单时间复杂度的计算 例一 例二 例三 1.5复杂时间复杂度的计算 例一&#xff1a;未优化冒泡排序时间复杂度 例二&#xff1a;经过优化…

蓝桥杯备战刷题-滑动窗口

今天给大家带来的是滑动窗口的类型题&#xff0c;都是十分经典的。 1&#xff0c;无重复字符的最长子串 看例三&#xff0c;我们顺便来说一下子串和子序列的含义 子串是从字符串里面抽出来的一部分&#xff0c;不可以有间隔&#xff0c;顺序也不能打乱。 子序列也是从字符串里…

5分钟教你使用pyarmnn推理引擎识别一只可爱猫咪~

视频 5分钟教你使用pyarmnn推理引擎识别一只可爱猫咪&#xff5e; 添加仓库 sudo apt install software-properties-common sudo add-apt-repository ppa:armnn/ppa sudo apt update 安装pyarmnn sudo apt-get install -y python3-pyarmnn armnn-latest-all python3-pip安装…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Checkbox)

提供多选框组件&#xff0c;通常用于某选项的打开或关闭。 说明&#xff1a; API version 11开始&#xff0c;Checkbox默认样式由圆角方形变为圆形。 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口…

Python(38):Request的data需入参是json,用转换json.dumps(data)

Python接口自动化测试遇到问题:误传str类型给request 一&#xff1a;request接口请求数据用str传参报错&#xff0c;请求响应报错 排查原因&#xff1a;查看服务器报错是Json解析报错。 1.1、如果直接入参&#xff0c;进行request请求的数据&#xff1a; data请求值为&…

C语言---单身狗问题

1.单身狗初阶 这个题目就是数组里面有一串数字&#xff0c;都是成对存在的&#xff0c;只有一个数字只出现了一次&#xff0c;请你找出来 &#xff08;1&#xff09;异或是满足交换律的&#xff0c;两个相同的数字异或之后是0&#xff1b; &#xff08;2&#xff09;让0和每个…

【LeetCode每日一题】299. 猜数字游戏

文章目录 [299. 猜数字游戏](https://leetcode.cn/problems/bulls-and-cows/)思路&#xff1a;代码&#xff1a; 299. 猜数字游戏 思路&#xff1a; 遍历两个字符串 secret 和 guess&#xff0c;若字符既在相同位置上又相等&#xff0c;则位置和数字都正确&#xff0c;对应的 …

如何对于单元格数据进行清洗处理

如何对于单元格数据进行清洗处理 陪伴意味着有人愿意把最美好的东西给你&#xff0c; 那就是时间。 当然陪伴也是一个很平常的事情&#xff0c; 日复一日&#xff0c;年复一年。 到最后陪伴就成了一种习惯。 约定好的相逢&#xff0c;伴你天荒地老&#xff01; 陪伴是最长情的告…

多线程多进程处理服务器并发(多进程处理如何解决僵死进程)

目录 1.可循环发送数据的代码 2.改成循环之后每次发现只能处理一个客户端 3.服务器端处理并发问题 3.1 思路 3.2 利用多线程实现并发 ​编辑 3.3 利用多进程实现并发 3.3.1 多进程并发产生的僵死进程问题 ​3.3.2 解决僵死进程问题 1.可循环发送数据的代码 服务器代…

AI代码加速器即将发布!傅盛:程序员会写某种代码就能找到工作的时代一去不复返了

在产品介绍视频的最后&#xff0c;代码加速器运行了Prompt生成的代码&#xff0c;是一个为傅盛庆生的祝福“彩蛋”。不得不说&#xff0c;猎户星空的程序员就做到了傅盛说的不止写代码&#xff0c;真是有点浪漫小心机在身上的。 3月6日&#xff0c;猎豹移动董事长兼CEO、猎户星…

木球竞赛抽签计分系统(C# Winform)

前几天做了个小系统&#xff0c;木球竞赛抽签计分系统。种子的设置&#xff0c;和轮空的设置&#xff0c;都是按照运动抽签的规则。目前仅支持8位&#xff0c;16位, 32位&#xff0c;64位报表的生成。 功能模块&#xff1a; 1、比赛管理&#xff1a;名称、承办、时间、地点 2…

使用Certbot解决https证书自动更新的问题

除了各个第三方博客平台之外&#xff0c;我还一直保有一个自建的博客网站https://zxs.io/&#xff0c;还有几个其他的域名用做小工具之类的&#xff0c;之前一直使用阿里云免费https证书&#xff0c;一次申请可以用一年&#xff0c;但现在阿里云免费证书缩短到3个月了&#xff…

云上攻防-云产品篇堡垒机场景JumpServer绿盟SASTeleport麒麟齐治

知识点 1、云产品-堡垒机-产品介绍&攻击事件 2、云产品-堡垒机-安全漏洞&影响产品 章节点&#xff1a; 云场景攻防&#xff1a;公有云&#xff0c;私有云&#xff0c;混合云&#xff0c;虚拟化集群&#xff0c;云桌面等 云厂商攻防&#xff1a;阿里云&#xff0c;腾讯…

【网络工程设计】交换网络技术

&#x1f4dd;本文介绍 本文主要介绍使用GNS3和VMware来构件一个简单的交换网络 &#x1f44b;作者简介&#xff1a;一个正在积极探索的本科生 &#x1f4f1;联系方式&#xff1a;943641266(QQ) &#x1f6aa;Github地址&#xff1a;https://github.com/sankexilianhua &#x…

【MySQL篇】 MySQL基础学习

文章目录 前言基础数据类型DDL数据库操作查询数据库创建数据库删除数据库使用数据库 DDL表操作创建表查询表修改表删除 DML-增删改添加数据更改数据删除数据 DQL-查询基础查询条件查询聚合函数分组查询排序查询分页查询编写顺序 DML-用户及权限用户管理权限控制 函数字符串函数…

修复网络适配器不工作的14种方法,总有一种适合你

网络适配器是将设备连接到internet或其他计算机的关键硬件组件。如果设备发生故障,你可能会面临连接速度慢的问题,在最坏的情况下,互联网将完全停止工作。 这可能是由于损坏的驱动程序、冲突的设备、配置错误的设置,甚至是硬件故障!但也有可能出现互联网问题,使你认为网…

22.网络游戏逆向分析与漏洞攻防-网络通信数据包分析工具-加载配置文件到分析工具界面

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;21.配置数据保存…

【java+vue】前后端项目架构详细流程

前端 1.创建vue项目 需要工具&#xff1a;node、Vscode 1.在磁盘上创建文件&#xff08;web&#xff09;&#xff0c;并移到Vscode的工作区 2.进入该文件的终端 3.检测node和vue是否正常&#xff0c;若不显示版本号&#xff0c;则自行下载 4.生成vue 1.执行命令&#xff1a;…

JavaScript中的Set和Map:理解与使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

2.JavaWebMySql基础

导语&#xff1a; 一、数据库基本概念 1.什么是数据库 2.关于MySql数据库 二、MySQL的安装与卸载 安装步骤&#xff1a; 卸载步骤&#xff1a; 三、MySQL服务操作 1.服务启动和关闭&#xff1a; 2.登录和退出MySQL&#xff1a; 3.服务自启动&#xff1a; 4.命令行登…