C++笔试强训day41

目录

1.棋子翻转

2.宵暗的妖怪

3.过桥


1.棋子翻转

链接icon-default.png?t=N7T8https://www.nowcoder.com/practice/a8c89dc768c84ec29cbf9ca065e3f6b4?tpId=128&tqId=33769&ru=/exam/oj

(简单题)对题意进行简单模拟即可:

class Solution {
public:int dx[4] = { 0, 0, 1, -1 };int dy[4] = { 1, -1, 0, 0 };vector<vector<int> > flipChess(vector<vector<int>>& A,vector<vector<int> >& f) {for (auto e : f) {int x = e[0] - 1, y = e[1] - 1;for (int i = 0; i < 4; ++i) {int a = x + dx[i];int b = y + dy[i];if (a >= 0 && a < 4 && b >= 0 && b < 4 && A[a][b] == 0)A[a][b] = 1;else if (a >= 0 && a < 4 && b >= 0 && b < 4 && A[a][b] == 1)A[a][b] = 0;}}return A;}
};

2.宵暗的妖怪

链接icon-default.png?t=N7T8https://ac.nowcoder.com/acm/problem/213484

线性dp问题,难点是分析它的状态转移方程

分析后发现:

dp[i] 与前面很多状态有关,如果强行这样求解,则需要两层for循环,又由于题目的数据范围很大,因此一定会超时。

因此,需要去思考将后面的多个状态变换成一个状态(类似于完全背包中需要解决的问题,不过这个更简单),观察后易发现,后面的状态不就等价于dp[i - 1]吗,然后一层一层递推

#include <iostream>
using namespace std;
typedef long long LL;
const int N = 1e5 + 10;int n;
LL arr[N];
LL dp[N];int main()
{cin >> n;for (int i = 1; i <= n; i++) cin >> arr[i];for (int i = 3; i <= n; i++){dp[i] = max(dp[i - 1], dp[i - 3] + arr[i - 1]);}cout << dp[n] << endl;return 0;
}

也可看作是打家劫舍变种问题

3.过桥

链接icon-default.png?t=N7T8https://ac.nowcoder.com/acm/problem/229296

贪心、求最短路径(因为每条边的权值都为1)

#include <iostream>
using namespace std;const int N = 2010;
int n;
int arr[N];int bfs()
{int left = 1, right = 1;int ret = 0;while (left <= right){ret++;int r = right;for (int i = left; i <= right; i++){r = max(r, arr[i] + i);if (r >= n){return ret;}}left = right + 1;right = r;}return -1;
}int main()
{cin >> n;for (int i = 1; i <= n; i++) cin >> arr[i];cout << bfs() << endl;return 0;
}

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

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

相关文章

事件驱动架构:新时代的软件设计范式

引言 在现代软件开发中&#xff0c;随着系统复杂度的增加和实时响应需求的提升&#xff0c;传统的单体架构和同步调用模型逐渐显露出其局限性。事件驱动架构&#xff08;Event-Driven Architecture, EDA&#xff09;作为一种高度解耦、灵活性强的架构设计模式&#xff0c;越来…

设计模式-中介者(调停者)模式(行为型)

中介者模式 中介者模式是一种行为型模式&#xff0c;又叫调停者模式&#xff0c;它是为了解决多个对象之间&#xff0c;多个类之间通信的复杂性&#xff0c;定义一个中介者对象来封装一些列对象之间的交互&#xff0c;使各个对象之间不同持有对方的引用就可以实现交互&#xf…

连山露【诗词】

连山露 雾隐黄山路&#xff0c;十步一松树。 树上惊松鼠&#xff0c;松子衔木屋。 松子青嫩芽&#xff0c;尖尖头探出。 卷挂白露珠&#xff0c;装映黄山雾。

Java面试八股之什么是反射,实现原理是什么

Java中什么是反射&#xff0c;实现原理是什么 Java中的反射&#xff08;Reflection&#xff09;是一种强大的特性&#xff0c;它允许程序在运行时检查和操作类、接口、字段和方法的信息。简而言之&#xff0c;反射机制使得程序能够在运行时动态地了解和使用自身或其他程序集中…

Python怎么水?深入剖析编程的奥秘与挑战

Python怎么水&#xff1f;深入剖析编程的奥秘与挑战 在编程的世界里&#xff0c;总有一些声音在讨论着如何“水”过一些任务或项目。但请注意&#xff0c;这里的“水”并非指真正的敷衍了事&#xff0c;而是用更轻松、高效的方式完成任务。对于Python这门强大的编程语言来说&a…

LDR6020一拖二快充线:高效充电的新选择

LDR6020一拖二快充线&#xff1a;高效充电的新选择 随着移动设备的普及和功能的日益增强&#xff0c;电池续航成为了用户关注的重点之一。为了满足用户对于快速充电的需求&#xff0c;各大厂商纷纷推出了各种快充技术和产品。在这个背景下&#xff0c;LDR6020一拖二快充线凭借…

Facebook与AI:探索人工智能在社交平台上的应用

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;社交媒体平台正利用这些先进技术为用户提供更为个性化和高效的体验。作为全球最大的社交媒体平台之一&#xff0c;Facebook在AI应用领域的探索和实践尤为引人注目。本文将深入探讨Facebook如何在其平台上应用…

Linux--标准IO库

一、标准IO简介 所谓标准 I/O 库则是标准 C 库中用于文件 I/O 操作&#xff08;譬如读文件、写文件等&#xff09;相关的一系列库函数的集合&#xff0c;通常标准 I/O 库函数相关的函数定义都在头文件 <stdio.h> 中&#xff0c;所以我们需要在程序源码中包含 <s…

图片和PDF展示预览、并支持下载

需求 展示图片和PDF类型&#xff0c;并且点击图片或者PDF可以预览 第一步&#xff1a;遍历所有的图片和PDF列表 <div v-for"(data,index) in parerFont(item.fileInfo)" :key"index" class"data-list-item"><downloadCard :file-inf…

递归算法举例

递归算法概述 递归算法是通过函数调用自身来解决问题的方法,通常用于解决那些可以分解为子问题的任务。这些示例展示了递归算法在各种问题中的应用,包括斐波那契数列阶乘二分查找汉诺塔问题合并排序深度优先搜索 递归算法通过函数调用自身来解决问题,通常用于可以分解为子问…

Java学习54-关键字this的使用

this是什么 this的作用&#xff1a; 它在方法(准确的说是实例方法或非static的方法)内部使用&#xff0c;表示调用该方法的对象 它在构造器内部使用&#xff0c;表示该构造器正在初始化的对象 this可以调用的结构&#xff1a;成员变量、方法和构造器 什么时候使用this 实…

Linux防火墙配置001

Linux防火墙主要用于控制网络流量&#xff0c;保护系统安全。在Linux中&#xff0c;有几种不同的防火墙管理工具&#xff0c;其中最常见的是iptables和firewalld。本章主要讲述如何关闭防火墙。 操作系统&#xff1a; CentOS Stream 9 操作步骤&#xff1a; 关闭防火墙&…

83页 | 2024数据安全典型场景案例集(免费下载)

以上是资料简介和目录&#xff0c;如需下载&#xff0c;请前往星球获取&#xff1a;

深度学习——卷积神经网络(CNN)

深度学习 深度学习就是通过多层神经网络上运用各种机器学习算法学习样本数据的内在规律和表示层次&#xff0c;从而实现各种任务的算法集合。各种任务都是啥&#xff0c;有&#xff1a;数据挖掘&#xff0c;计算机视觉&#xff0c;语音识别&#xff0c;自然语言处理等。‘ 深…

【ARM Cache 与 MMU 系列文章 7.6 -- ARMv8 MMU 配置 寄存器使用介绍】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU 转换控制寄存器 TCR_ELxTCR_ELx 概览TCR_ELx 寄存器字段详解TCR 使用示例Normal MemoryCacheableShareability MMU 内存属性寄存器 MAIR_ELxMAIR_ELx 寄存器结构内存属性字段Devic…

Python中shape用法探秘:四维、五维、六维与七维的奇幻之旅

Python中shape用法探秘&#xff1a;四维、五维、六维与七维的奇幻之旅 在Python的数据处理与分析领域&#xff0c;shape属性无疑是一把揭示数据维度结构的利器。尤其在涉及多维数组时&#xff0c;它的用法显得既深邃又富有挑战。本文将以一种人类化的表达方式&#xff0c;带你…

TiDB-从0到1-配置篇

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇 一、系统配置 TiDB的配置分为系统配置和集群配置两种。 其中系统配置对应TiDB Server&#xff08;不包含TiKV和PD的参数&#xff0…

Java算法-力扣leetcode-392. 判断子序列

给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的一个子序列&#…

利用GPT和PlantUML快速生成UML图用于设计

在软件开发中&#xff0c;设计阶段可是关键的一步。UML&#xff08;统一建模语言&#xff09;图能帮我们更清晰地理解和规划系统结构&#xff0c;但手动画UML图有时会很费时费力。好消息是&#xff0c;通过结合使用ChatGPT和PlantUML&#xff0c;我们可以高效地生成UML图&#…

Mysql 快速入门指南

1. MySQL简介 什么是MySQL MySQL是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它采用结构化查询语言&#xff08;SQL&#xff09;来管理和操作数据库。MySQL以其高性能、高可靠性和易用性而闻名&#xff0c;被广泛应用于各种Web应用和数据密集…