刷题强训(day05) -- 游游的you、腐烂的苹果、孩子们的游戏(圆圈中最后剩下的数)

目录

1、游游的you

1.1 题目

1.2 思路

1.3 代码实现

2、腐烂的苹果

2.1 题目

2.2 思路

2.3 代码实现

3、孩子们的游戏(圆圈中最后剩下的数)

3.1 题目

3.2 思路

 3.3 代码实现

3.3.1 环形链表

​编辑3.3.2 动态规划

​编辑


1、游游的you

1.1 题目

1.2 思路

根据题目得知,首先要you的次数最多,再去拼接oo,注意oo是1分,ooo是2分,oooo是3分,所以oo的分数为b-;you的个数是a,b,c中的最小值,所以我们先拼出you,同时消耗b,所以oo的分数就时b减去you的个数在减去1;

理清思路,接下来就是代码实现。

1.3 代码实现

#include <iostream>
using namespace std;int main() 
{int q = 0;cin >> q;int a,b,c;while(q--){cin >> a >> b >> c;int you = min(a,min(b,c));int oo = max(b-you-1,0);cout << you*2+oo << endl;}return 0;
}

2、腐烂的苹果

2.1 题目

2.2 思路

这是一道考察多源BFS+最短路的题目,0,1,2分别表示空格,好苹果,坏苹果,坏苹果每分钟回向上下左右四个方向扩散(这里可以理解为搜索),找到好苹果则传染为坏的,因为这里是一圈一圈的扩散,所以能想到用多源BFS。

我们先遍历一遍矩阵,把所有坏苹果放入到一个队列中,就可以实现每次出队列就可同时操作多个坏苹果,用一个变量count记录一下坏苹果的传播次数,传播到0则不管,传播到1则把1置为2,或标记为已传播,然后把这个被标记的苹果放到对列中。遍历传播结束后,在遍历一遍矩阵是否还有好苹果,有则返回-1,否则返回count。

2.3 代码实现

注意遍历结束后,还要判断矩阵中是否还有好苹果,这时候相当于多扩散了一次,所以要输出count - 1。

class Solution 
{int m,n;int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};bool vis[1001][1001] = {0};
public:int rotApple(vector<vector<int> >& grid) {n = grid.size(),m = grid[0].size();queue<pair<int,int>> q; //用pair存放坏苹果的行和列for(int i = 0;i < n;i++)for(int j = 0;j < m;j++)if(grid[i][j]==2)q.push({i,j});int count = 0;while(q.size()){count++;int qs = q.size();while(qs--){auto [a,b] = q.front();//拿出队头元素q.pop();for(int i =0 ;i< 4;i++){int x = a + dx[i],y= b + dy[i];//边界控制,防止出界且好苹果未被标记if(x>=0 && x<n && y >= 0 && y < m && grid[x][y] == 1 && !vis[x][y]){vis[x][y] = true;q.push({x,y});}}}}for(int i = 0;i < n;i++){for(int j = 0;j< m;j++){if(grid[i][j] == 1 && !vis[i][j])return -1;}}return count-1;}
};

 

3、孩子们的游戏(圆圈中最后剩下的数)

3.1 题目

3.2 思路

这是一个约瑟夫环问题,我们可以用环形链表模拟来实现或者用动态规划来解决

 3.3 代码实现

3.3.1 环形链表

class Solution 
{
public:int LastRemaining_Solution(int n, int m) {list<int> lt;for(int i = 0;i < n;i++)lt.push_back(i);auto it  = lt.begin();while(lt.size()>1){for(int i = 1; i <  m;i++){++it;//当走到尾部的时候,让it在走到链表的头,形成环if(it == lt.end())it = lt.begin();}//erase删除后自动指向下一个节点it = lt.erase(it);if(it == lt.end())it = lt.begin();}return *it;}
};

3.3.2 动态规划

class Solution 
{
public:int LastRemaining_Solution(int n, int m) {   // int dp[5001];// dp[1] = 0;// for(int i = 2;i <= n;i++)//     dp[i] = (dp[i-1]+m) % i;// return dp[n];//优化一下空间,用一个变量代dp,因为我们仅用dp[i-1]的值int f = 0;for(int i = 2;i <=n;i++)f = (f+m) % i;return f;}
};


本篇完,下篇见!如有问题,欢迎在评论区指导!

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数据库sql初识以及-增删改查

查看已有数据库show databases; 创建数据库&#xff1a;create database数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 删除数据库drop database 名字 进入数据库&#xff1a;use 数据库; 查看文件夹中所有数据表:show tables; 创建表&#xff1a; create t…

Java:一段代码,无限可能

Java&#xff0c;诞生于1995年&#xff0c;如今已走过近三十载春秋。它历经互联网泡沫的兴衰、移动互联网的浪潮&#xff0c;以及云计算和大数据的洗礼&#xff0c;依然屹立在编程语言的舞台中央&#xff0c;散发着耀眼的光芒。这篇文章将带你回顾Java的辉煌历史&#xff0c;探…

vue中:class语法的{}[]两种用法及其使用场景例子

语法 :class"对象/数组" ① 传对象 →键就是类名&#xff0c;值是布尔值。如果值为 true&#xff0c;则当前元素含有这个类实现这个类的样式&#xff0c;否则没有这个类&#xff0c;不去实现 <div class"box":class"{ 类名1:布尔值&#xf…

【SpringBoot】黑马大事件笔记-day3

目录 文章管理部分 自定义注解校验 注解的概念 元注解 规定约束的注解 分页查询 OSS文件上传 获取AccessKey 上期回顾&#xff1a; 【SpringBoot】 黑马大事件笔记-day1 【SpringBoot】 黑马大事件笔记-day2 文章管理部分 自定义注解校验 先来看一下接口文档了解需求&#xff…

webpack loader全解析,从入门到精通(10)

webpack 的核心功能是分析出各种模块的依赖关系&#xff0c;然后形成资源列表&#xff0c;最终打包生成到指定的文件中。更多复杂的功能需要借助 webpack loaders 和 plugins 来完成。 1. 什么是 Loader Loader 本质上是一个函数&#xff0c;它的作用是将某个源码字符串转换成…

基于Vue的电子商城后台管理系统

摘 要 随着数字化时代的到来&#xff0c;人们对软件市场的需求不断加大&#xff0c;可视化管理系统代替人工管理的趋势持续上升&#xff0c;尤其电子商城类项目&#xff0c;针对后台管理的多样化需求尤为迫切。所以&#xff0c;为满足市场与日俱增的需求&#xff0c;开发电子…

Mysql数据类型面试题15连问

整数类型的 UNSIGNED 属性有什么用&#xff1f; MySQL 中的整数类型可以使用可选的 UNSIGNED 属性来表示不允许负值的无符号整数。使用 UNSIGNED 属性可以将正整数的上限提高一倍&#xff0c;因为它不需要存储负数值。 例如&#xff0c; TINYINT UNSIGNED 类型的取值范围是 0 ~…

优选算法合集————双指针(专题一)

题目一&#xff1a;移动零 题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输…

docker基础:搭建centos7(详见B站泷羽sec)

docker的简单学习&#xff1a; sudo apt-get update //这个命令让系统检查有没有新软件 sudo apt-get install docker.io //安装 Docker sudo docker version //查看是否安装成功&#xff0c;显示docker的版本信息 启用Docker 启…

ThreadLocal的熟悉与使用

目录 1.ThreadLocal介绍2.ThreadLocal源码解析2.1 常用方法2.2 结构设计2.3 类图2.4 源码分析2.4.1 set方法分析2.4.2 get方法分析2.4.3 remove方法分析 3.ThreadLocal内存泄漏分析3.1 相关概念3.1.1 内存溢出3.1.2 内存泄漏3.1.3 强引用3.1.4 弱引用 3.2 内存泄漏是否和key使用…

振弦式表面式应变计数据要怎么采集

振弦式表面应变计是一种专门用于测量结构表面应变的传感器&#xff0c;其数据采集过程通常涉及以下步骤&#xff1a; 一、设备准备与连接 设备检查&#xff1a;确保振弦式表面应变计及其相关设备(如MCU自动测量单元、数据传输线等)处于良好工作状态&#xff0c;无损坏或故障。 …

pitest.org使用简介

pitest.org PIT生成的报告是一种易于阅读的格式&#xff0c;结合线路覆盖和变异覆盖信息。 pitest.org官网提供了四种使用方式&#xff1a; Maven快速入门 命令行快速启动 蚂蚁快速启动 Gradle快速启动&#xff08;外部链接&#xff09; 我所使用的是Maven的方式进行构建项…

我们所有人际关系的痛苦根源,都源于缺乏边界感

在现实生活里&#xff0c;我们常会遇到这样的情况&#xff1a;对方总是越界&#xff0c;而你又不知如何拒绝&#xff0c;这种不快就会积压在心底。于是&#xff0c;我们可能会想要从其他方面突破对方的界限作为报复&#xff0c;这时关系就会变得紧张。 没有界限的关系容易让人…

JS之正则表达式

一、什么是正则表达式 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </…

泷羽sec学习打卡-Windows基础virus

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 关于windows virus的那些事儿 一、Windows-Virus资源耗尽之无限弹窗cmd-virus测试锁机virus测试无限重启…

【风力发电】基于虚拟惯性控制+一次调频+下垂控制的DFIG双馈风力发电机三机九节点仿真模型

摘要 随着风力发电在电力系统中的渗透率逐渐提高&#xff0c;如何增强风电系统的动态响应能力成为关键问题。本文针对双馈感应发电机(DFIG)&#xff0c;提出一种结合虚拟惯性控制、一次调频和下垂控制的综合控制策略&#xff0c;以改善其在电网扰动条件下的稳定性和频率响应性…

智慧社区可视化解决方案:科技引领社区服务与管理新篇章

随着社会的发展&#xff0c;智慧社区作为新型城镇化发展目标和社区服务体系建设的重要举措&#xff0c;正逐步改变着我们的生活方式。智慧社区通过综合运用现代科学技术&#xff0c;整合区域资源&#xff0c;提升社区治理和服务水平&#xff0c;为居民提供更为便捷、高效、安全…

消息队列高级

目录 消息可靠性 生产者消息确认 第一步&#xff1a;修改application.yml配置文件信息 第二步&#xff1a;定义发送者确认confirm回调方法 第三步&#xff1a;创建消息发送者回执return回调方法&#xff08;确保消息从交换机到消息队列&#xff09; 总结&#xff1a; 消息持…

乐鑫USB方案助力设备互联和数据传输,启明云端乐鑫一级代理商

USB USB 是一种通用的总线标准&#xff0c;用于连接主机和外部设备。 乐鑫 USB 方案为用户提供了方便快捷的设备互联和数据传输方式。乐鑫 SoC 通过将 USB 作为标配外设之一&#xff0c;提供 USB 2.0 OTG 或 USB-Serial-JTAG 接口&#xff0c;支持主机 (Host) 和设备 (Device…

linux详解,基本网络枚举

基本网络枚举 一、基本网络工具 ifconfig ifconfig是一个用于配置和显示网络接口信息的命令行工具。它可以显示网络接口的P地址、子网掩码、MC地址等信息&#xff0c;还可以用于启动、停止或配置网络接口。 ip ip也是用于查看和管理网络接口的命令。 它提供了比ifconfig更…