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

牛客周赛63(C++实现)

CSDN
在这里插入图片描述
🌈个人主页:Yui_
🌈Linux专栏:Linux
🌈C语言笔记专栏:C语言笔记
🌈数据结构专栏:数据结构
🌈C++专栏:C++

文章目录

  • 1.小红的好数
    • 1.1 题目描述
    • 1.2 思路
    • 1.3 代码
  • 2.小红的好数组
    • 2.1 题目描述
    • 2.2 思路
    • 2.3 代码
  • 3.小红的矩阵行走
    • 3.1 题目描述
    • 3.2 思路1(动态规划)
    • 3.2 思路2(dfs暴搜)
    • 3.3 代码1
    • 3.3 代码2
  • 4.小红的行列式构造
    • 4.1 题目描述
    • 4.2 思路
    • 4.3 代码

比赛链接 比赛链接

1.小红的好数

1.1 题目描述

小红定义一个正整数是“好数”,当且仅当该数满足以下两个性质:

  1. 数位恰好为2。
  2. 个位数和十位数相同。
    请你判断一个给定的正整数是否是好数?

描述

1.2 思路

直接把数字当成字符串来判断

1.3 代码

#include <iostream>
#include <string>
using namespace std;int main()
{string s;cin >> s;if (s.size() == 2 && s[0] == s[1]){cout << "Yes";}else{cout << "No";}return 0;
}

2.小红的好数组

2.1 题目描述

小红定义一个数组是“好数组”,当且仅当该数组满足以下两个性质:

  1. 该数组不是回文数组。
  2. 修改恰好一个元素后,该数组变成回文数组。
    所谓回文数组,即将一个数组左右翻转后,和原数组相同,例如[12,3,12]是回文数组。
    现在小红拿到了一个数组,请你帮小红计算有多少个长度为kkk的连续子数组是好数组。
    描述

2.2 思路

因为数据量很小,直接按题目来判断就可以了,把判断回文数的思路给改一下就是了。

2.3 代码

#include <iostream>
#include <string>
#include <vector>
using namespace std;
bool check(vector<int>& v, int begin, int end)
{int error = 2;while (begin <= end && error != 0) {if (v[begin] != v[end]) {error -= 1;}begin += 1;end -= 1;}return error == 1;
}
int main()
{int n, k;cin >> n >> k;vector<int> v(n);for (int i = 0; i < n; ++i) cin >> v[i];int ans = 0;for (int i = 0; i <= n - k; ++i){if (check(v, i, i + k - 1)) {ans += 1;}}cout << ans << endl;return 0;
}

3.小红的矩阵行走

3.1 题目描述

小红因为太喜欢出“矩阵行走”的题,被小紫关进矩阵里了,她希望你来救救她!
现在给定了一个矩阵,小红初始站在矩阵的左上角。已知小红每次可以向右或者向下走一步,当小红经过一个格子时,她将收集该格子的正整数。小红希望到达右下角时,收集到的所有正整数都相同。你能帮帮她吗?
描述

3.2 思路1(动态规划)

很经典的’‘走迷宫’'题目,不过这里的障碍物就变成了与数组第一个元素不同的元素的位置。了解完后,我们先创建一个dp数组(多开一行再多开一列,这样可以有效的防止越界)。dp[i][j]如果等于-1就代表可以按题目要求走到的位置。
那么我们需要先把d[0][0]初始化为-1。因为[0][0]是绝对可以走到的位置,肯定要初始化为-1.
后续我们遍历数组,当遍历的数组元素为目标元素(vv[0][0])。判断这个位置是否可以从前一步走过了。因为小红只会向下走和向右走,所以我们只需要判断当前位置的上一行或者上一列就可以了。
最后遍历完后,判断一下dp[n][m]是否等于-1。

3.2 思路2(dfs暴搜)

需要创建与vv相同的数组来表示已经走过的路,为了防止回溯时走回已经走过的路。再创建一个方向数组int dis[2][2] = { {0,1},{1,0} };来表示接下来要走的方向。
开始从vv[0][0]进入dfs。递归的结束条件就是当递归到矩阵的最后一个元素,如果能走到就表示可以走出矩阵。
后面的代码也是回溯的经典代码,先用一个循环来表示接下来要走的方向,在判断这个方向是否合法。

3.3 代码1

#include <iostream>
#include <string>
#include <vector>
#include <cstdbool>
using namespace std;int main()
{int t;cin >> t;while (t--){int n, m;cin >> n >> m;vector<vector<int>> vv(n, vector<int>(m));for (int i = 0; i < n; ++i)for (int j = 0; j < m; ++j) cin >> vv[i][j];vector<vector<int>> dp(n+1,vector<int>(m+1));int tmp = vv[0][0];dp[1][1] = -1;for(int i = 1;i<=n;++i){for(int j = 1;j<=m;++j){if(vv[i-1][j-1] == tmp&&(dp[i-1][j] == -1||dp[i][j-1] == -1)){dp[i][j] = -1;}}}if(dp[n][m] == 0){cout<<"No"<<endl;}else{cout<<"Yes"<<endl;}}return 0;
}

3.3 代码2

#include <iostream>
#include <string>
#include <vector>
#include <cstdbool>
using namespace std;int dis[2][2] = { {0,1},{1,0} };
void dfs(vector<vector<int>>& vv, int a, int b, vector<vector<bool>>& path,bool&ans) {int n = vv.size(), m = vv[0].size();if (a == n - 1 && b == m - 1)ans = true;for (int i = 0; i < 2; ++i) {int x = a + dis[i][0];int y = b + dis[i][1];if (x >= n || y >= m || vv[x][y] != vv[a][b]||path[x][y]) continue;path[x][y] = true;dfs(vv, x, y,path,ans);path[x][y] = false;}
}
int main()
{int t;cin >> t;while (t--){int n, m;cin >> n >> m;vector<vector<int>> vv(n, vector<int>(m));for (int i = 0; i < n; ++i)for (int j = 0; j < m; ++j) cin >> vv[i][j];vector<vector<bool>> path(n, vector<bool>(m,false));bool ans = false;path[0][0] = true;dfs(vv, 0, 0,path,ans);if (ans) {cout << "Yes" << endl;}else {cout << "No" << endl;}}return 0;
}

4.小红的行列式构造

4.1 题目描述

小红希望你构造一个3阶行列式,满足每个元素的绝对值不小于1,且行列式的值等于xxx。你能帮帮她吗?
描述

4.2 思路

纯数学,在3阶行列式的计算公式。
3阶行列式计算公式

因为答案存在很多个,可以假设很多种情况。

4.3 代码

#include <iostream>
#include <string>
#include <vector>
#include <cstdbool>
using namespace std;int main()
{int x = 0;cin>>x;if(x>=0){cout<<"1 1 1"<<endl;cout<<"1 2 1"<<endl;cout<<"1 1 ";cout<<x+1<<endl;}else{cout<<"-1 -1 -1"<<endl;cout<<"-1 -2 -1"<<endl;cout<<"-1 -1 "<<endl;cout<<x-1<<endl;}return 0;
}

文章就先到这里了,欢迎大家的点赞,评论和关注~

相关文章:

牛客周赛63(C++实现)

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 1.小红的好数1.1 题目描述1.2 思路1.3 代码 2.…...

高级英语1第四版教材全解pdf课后答案+课文翻译张汉熙

《高级英语1》是张汉熙教授编著的一本英语教材&#xff0c;广泛用于国内高校英语专业高年级学生的教学。这本书以提高学生的英语综合能力为目标&#xff0c;注重语言知识的系统性和实用性&#xff0c;同时强调跨文化交际能力的培养。书中选材丰富&#xff0c;涵盖了文学、历史、…...

视频去水印软件3款推荐:好用的去水印软件分享!

在处理视频素材时&#xff0c;水印往往是一个令人头疼的问题。幸运的是&#xff0c;市面上有许多优秀的视频编辑软件能够帮助我们快速、有效地去除水印。今天&#xff0c;我将为大家推荐三款功能强大的视频去水印软件&#xff1a;影忆、Final Cut Pro X以及Adobe Premiere Pro&…...

perl文件测试操作符及其意义

perl文件测试操作符及其意义 文件测试操作符意义-r文件或目录&#xff0c;对目前&#xff08;有效的&#xff09;用户或组来说是可读的-w文件或目录&#xff0c;对目前&#xff08;有效的&#xff09;用户或组来说是可写的-x文件或目录&#xff0c;对目前&#xff08;有效的&a…...

NC 单据模板自定义项 设置参照(自定义参照)

NC 单据模板自定义项 设置参照&#xff08;自定义参照&#xff09; 如图下图&#xff0c;NC 单据模板自定义项 设置参照&#xff1a; 1、选择需要设置参照的自定义字段&#xff0c;选择高级属性页签&#xff0c;在类型设置中&#xff0c;数据类型选择参照信息&#xff0c;即bd…...

Element-ui官方示例(Popover 弹出框)

Element-ui官方示例&#xff08;Popover 弹出框&#xff09;&#xff0c;好用的弹出框。 使用 vue-cli3 我们为新版的 vue-cli 准备了相应的​Element 插件​&#xff0c;你可以用它们快速地搭建一个基于 Element 的项目。 使用 Starter Kit 我们提供了通用的项目模版&#…...

Bootstrap 5 练习 - 显示工具提示

文章目录 引言准备工作创建HTML文件导入Bootstrap 5框架编写页面代码编写JavaScript脚本浏览网页注意事项结束语 引言 大家好&#xff0c;今天我们将一起学习如何在Bootstrap 5中创建一个简单的工具提示&#xff08;Tooltip&#xff09;。工具提示是一个非常实用的用户界面元素…...

【p2p、分布式,区块链笔记 Torrent】: WebTorrent GitTorrent bittorrent-dht

bittorrent-dht模块 BitTorrent DHT 通过 DHT 网络广播值&#xff0c;允许其他用户通过 DHT 来发现和获取这些数据。 1. 导入依赖 var DHT require(bittorrent-dht)2. 创建实例 var dht new DHT({bootstrap: config.dht.bootstrap }) dht.listen(config.dht.listen)new D…...

【Next.js 项目实战系列】05-删除 Issue

原文链接 CSDN 的排版/样式可能有问题&#xff0c;去我的博客查看原文系列吧&#xff0c;觉得有用的话&#xff0c;给我的库点个star&#xff0c;关注一下吧 上一篇【Next.js 项目实战系列】04-修改 Issue 删除 Issue 添加删除 Button​ 本节代码链接 这里我们主要关注布局…...

Springboot api http并发测试请求

pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> 线程发起请求 package com.example.demo;import org.springframework.http.HttpEntity; import org…...

Qt的websocket客户端和服务器测试(非安全版本)

测试内容&#xff1a; 客户端&#xff1a; 1 连接服务器 2 发送数据 3 处理错误信号 4 监听断开信号 5 接收服务器的数据 服务器&#xff1a; 1 监听等待客户端连接 2 向指定的客户端发送数据 4 监听断开信号 5 接收客户端的数据 测试界面 工程文件.pro添加的内容&#xff1a;…...

Prometheus运维监控平台之监控指标注册到consul脚本开发、自定义监控项采集配置调试(三)

系列文章目录 运维监控平台搭建 运维监控平台监控标签 golang_Consul代码实现Prometheus监控目标的注册以及动态发现与配置V1版本 文章目录 系列文章目录目的一、监控指标注册到consul的golang脚本开发1、修改settings.yaml文件2、修改config/ocnsul,go文件3、修改core/consul…...

C语言——数组

1.数组的概念 数组是一组相同类型元素的集合&#xff1b; 数组中可以存放1个或多个元素&#xff0c;但数组元素个数不能为0。 同时数组可以分为一维数组和多维数组&#xff0c;多维数组一般常见 是二维数组。 2.一维数组的创建和初始化 一维数组的创建的基本语法&#xff1a; …...

MySQL-09.DDL-表结构操作-查询修改删除

一.查询 二.修改 三.删除 -- DDL&#xff1a;查看表结构 -- 查看&#xff1a;当前数据库下的表show tables ;-- 查看&#xff1a;查看指定的表结构 desc tb_emp;-- 查看&#xff1a;数据库的建表语句 show create table tb_emp;-- DDL:修改表结构 -- 修改&#xff1a;为表tb…...

WileyNJDv5_Template模板无法编译生成pdf文件

文章目录 问题解决办法结果 问题 使用WileyNJDv5_Template模板时&#xff0c;修改tex文件里的内容&#xff0c;按F6编译后&#xff0c;并没有报错&#xff0c;但是编辑后的pdf文件没有生成&#xff0c;因为看文件夹里的pdf文件日期还是以前的日期&#xff0c;所以是旧版的pdf文…...

亿配芯城(ICGOODFIND)教你外贸(海外)推广电子元器件芯片的专用词语

在电子元器件行业&#xff0c;海外推广是企业拓展市场、提升竞争力的重要手段。而在海外推广过程中&#xff0c;恰当运用专用词语能够准确传达产品信息、吸引客户关注&#xff0c;提升推广效果。本文将详细介绍亿配芯城&#xff08;ICGOODFIND&#xff09;电子元器件海外推广中…...

windows和linux的一些使用问题一一记录

文章目录 windows 11 激活wsl文件共享命令互通wslg网络 Hyper-V双系统遇到再记录……… windows 11 激活 然后执行 slmgr /skms kms.03k.org slmgr /atowsl 卡死打开任务管理关闭下就行了 wsl --list -v # 安装的 wsl --list --online #可以安装的wsl -d kali-linux # 启…...

排序算法上——插入,希尔,选择,堆排序

前言&#xff1a; 常见排序方法如下&#xff1a; 本篇将介绍4种排序方法&#xff0c;分别为插入排序&#xff0c;希尔排序&#xff0c;选择排序&#xff0c;堆排序&#xff0c;并分别举例与讲解。 一. 插入排序 1.1 含义与动图分析 插入排序的思想是在有序区间的下一个位置…...

Mycat 详细介绍及入门实战,解决数据库性能问题

一、基本原理 1、数据分片 &#xff08;1&#xff09;、水平分片 Mycat 将一个大表的数据按照一定的规则拆分成多个小表&#xff0c;分布在不同的数据库节点上。例如&#xff0c;可以根据某个字段的值进行哈希取模&#xff0c;将数据均匀的分布到不同的节点上。 这样做的好处…...

FFmpeg源码:avformat_new_stream函数分析

一、avformat_new_stream函数的声明 avformat_new_stream函数定义在FFmpeg源码&#xff08;本文演示用的FFmpeg源码版本为7.0.1&#xff09;的头文件libavformat/avformat.h中&#xff1a; /*** Add a new stream to a media file.** When demuxing, it is called by the dem…...

【java】深入解析Lambda表达式

Lambda表达式是Java 8引入的一项重要特性&#xff0c;它提供了一种简洁的方式来实现函数式编程。Lambda表达式的使用广泛而且灵活&#xff0c;可以简化代码并提高可读性。本篇文章将深入解析Lambda表达式&#xff0c;包括使用场景、基础学习、代码案例、实现方法和注意事项等方…...

Chromium html<img>对应c++接口定义

<img src"tulip.jpg" alt"上海鲜花港 - 郁金香" /> 1、html_tag_names.json5中接口定义&#xff1a; &#xff08;third_party\blink\renderer\core\html\html_tag_names.json5&#xff09; {name: "img",constructorNeedsCreateElementF…...

卸载Python

1、查看安装框架位置并删除 Sudo rm -rf /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8 2、查看应用并删除 在 /Applications/Python 3.x 看是否存在&#xff0c;如果存在并删除。 3、删除软连接 ls -l /usr/bin/py* 或 ls -…...

算法剖析:二分查找

文章目录 前言二分查找模板朴素模板左右查找模板 一、二分查找二、 在排序数组中查找元素的第一个和最后一个位置三、搜索插入位置四、x 的平方根五、山脉数组的峰顶索引六、寻找峰值七、寻找旋转排序数组中的最小值八、 点名总结 前言 二分查找是一种高效的查找算法&#xff…...

Invoke 和 InvokeRequired以及他们两个的区别

在.NET中&#xff0c;Invoke和InvokeRequired是Windows Forms编程中用于确保线程安全的关键方法和属性。它们通常用在多线程环境中&#xff0c;以确保UI控件的更新操作在创建控件的线程上执行&#xff0c;避免因跨线程操作导致的异常。 InvokeRequired 属性 InvokeRequired属…...

SpringBoot概览及核心原理

Spring Boot 是由Pivotal 团队设计的全新框架&#xff0c;其目的是用来简化 Spring 应用开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使得开发人员不再需要定义一系列样板化的配置文件&#xff0c;而专注于核心业务开发&#xff0c;项目涉及的一些基础设施则交…...

根据basic auth请求https获取token

根据basic auth请求https获取token 对接第三方接口&#xff0c;给了接口文档&#xff0c;但是没有示例代码&#xff0c;postman一直可请求成功&#xff0c;java就是不行。百思不得其解&#xff0c;最后请求公司大神&#xff0c;得到一套秘籍。 第一步 第二步 Authorization&am…...

【基础版】React缓存路由

前言 项目背景 Reactumireact-router5 需求 用户在某一页面操作后点击跳转到其详情页&#xff0c;返回到列表页还是之前操作过的页面&#xff0c;即把页面缓存下来&#xff08;基础版先处理路由缓存&#xff0c;tab页展示先不处理&#xff09; 实践 在布局页面对页面进行…...

Java基础15-Java高级

十五、Java高级 单元测试、反射、注解、动态代理。 1、单元测试 定义&#xff1a;就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。 1.1 Junit单元测试框架 可以用来对方 法进行测试&#xff0c;它是第三方公司开源出来的(很多开发工具已经集成了Junit框架&…...

selenium工具的几种截屏方法介绍(9)

在使用selenium做自动化的时候&#xff0c;可以对于某些场景截图保存当时的执行情况&#xff0c;方便后续定位问题或者作为一些证据保留现场。 获取元素后将元素截屏 我们获取元素后&#xff0c;使用函数screenshot将元素截屏&#xff0c;参数filename传入完整的png文件名路径…...