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

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.lryc.cn/news/367303.html

相关文章:

  • 【JavaScript】内置对象 - 字符串对象 ⑤ ( 判断对象中是否有某个属性 | 统计字符串中每个字符出现的次数 )
  • Linux环境下测试服务器的DDR5内存性能
  • 19、matlab信号预处理中的中值滤波(medfilt1()函数)和萨维茨基-戈雷滤波滤(sgolayfilt()函数)
  • Scala 练习一 将Mysql表数据导入HBase
  • 前端工程化:基于Vue.js 3.0的设计与实践
  • Linux☞进程控制
  • mybatis离谱bug乱转类型
  • 视频监控管理平台LntonCVS视频汇聚平台充电桩视频监控应用方案
  • VS环境Python:深度探索与实用指南
  • SpringBoot整合SpringSecurit(二)通过token进行访问
  • 【算法训练 day50 打家劫舍、打家劫舍Ⅱ、打家劫舍Ⅲ】
  • YOLOv8改进 | 卷积模块 | 在主干网络中添加/替换蛇形卷积Dynamic Snake Convolution
  • 深入解析力扣183题:从不订购的客户(LEFT JOIN与子查询方法详解)
  • 牛客NC32 求平方根【简单 二分 Java/Go/C++】
  • 王道408数据结构CH3_栈、队列
  • Angular 由一个bug说起之六:字体预加载
  • 并查集进阶版
  • 贪心(不相交的开区间、区间选点、带前导的拼接最小数问题)
  • [力扣题解] 617. 合并二叉树
  • kafka-消费者组(SpringBoot整合Kafka)
  • Redisson知识
  • 0103__【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
  • 如何把几个pdf文件合成在一个pdf文件
  • Stream与MLC测试CPU内存DDR5的原理与方法详解
  • linux业务代码性能优化点
  • Shell脚本学习_字符串变量
  • spring-kafka-生产者服务搭建测试(SpringBoot整合Kafka)
  • JVM学习-内存泄漏
  • Go微服务: 分布式之通过本地消息实现最终一致性和最大努力通知方案
  • BC C language