【c++笔试强训】(第七篇)

目录

游游的you(贪⼼+模拟)

题目解析

讲解算法原理

编写代码

腐烂的苹果(多源BFS)

题目解析

讲解算法原理

编写代码


游游的you(贪⼼+模拟)

题目解析

1.题目链接:游游的you__牛客网

2.题目描述
 

游游现在有a个'y',b个'o',c个'u',他想用这些字母拼成一个字符串。

三个相邻的字母是"you"可以获得2分,两个相邻的字母是"oo",可以获得1分。

问最多可以获得多少分?

输入描述:

第一行一个整数qqq,代表询问次数。

接下来qqq行,每行三个正整数a,b,ca,b,ca,b,c,用空格隔开。


1≤q≤1051\leq q \leq 10^51≤q≤105
1≤a,b,c≤1091\leq a,b,c \leq 10^91≤a,b,c≤109

输出描述:

输出qqq行,代表每次询问的答案。

示例1

输入

3
1 1 1
2 3 2
1 5 2

输出

2
4
5

说明

第一次询问,可以拼出"you",获得2分。

第二次询问,可以拼出"oyouyou",获得4分。

第三次询问,可以拼出"uooooyou",获得5分。

讲解算法原理

解法:
算法思路:
由题意得:

◦ you和oo是相互独⽴的;
◦ 但是you的分值更⾼,因此我们应该优先去拼凑you,然后再考虑oo

编写代码

c++算法代码:

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

java算法代码:

import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in);int q = in.nextInt();int a, b, c;while(q-- != 0){a = in.nextInt(); b = in.nextInt(); c = in.nextInt();int x = Math.min(a, Math.min(b, c));System.out.println(x * 2 + Math.max(b - x - 1, 0));}}
}

 

腐烂的苹果(多源BFS)

题目解析

1.题目链接:腐烂的苹果_牛客题霸_牛客网

2.题目描述

描述

给定一个 n \times m \n×m  的网格,其中每个单元格中可能有三种值中的一个 0 , 1 , 2。

其中 0 表示这个格子为空、1 表示这个格子有一个完好的苹果,2 表示这个格子有一个腐烂的苹果。

腐烂的苹果每分钟会向上下左右四个方向的苹果传播一次病菌,并导致相邻的苹果腐烂。请问经过多少分钟,网格中不存在完好的苹果。如果有苹果永远不会腐烂则返回 -1

数据范围: 1 \le n , m \le 1000 \1≤n,m≤1000  ,网格中的值满足 0 \le val \le 2 \0≤val≤2 

示例1

输入:

[[2,1,1],[1,0,1],[1,1,1]]

复制返回值:

4

复制

示例2

输入:

[[2,1,0],[1,0,1],[0,0,0]]

复制返回值:

-1

讲解算法原理

解法:
算法思路:

多源BFS问题,固定套路~

编写代码

c++算法代码:

class Solution
{int m, n;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};bool vis[1010][1010] = { 0 };
public:int rotApple(vector<vector<int> >& grid) {m = grid.size(), n = grid[0].size();queue<pair<int, int>> q;for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)if(grid[i][j] == 2)q.push({i, j});int ret = 0;while(q.size()){int sz = q.size();ret++;while(sz--){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 < m && y >= 0 && y < n && grid[x][y] == 1
&& !vis[x][y]){vis[x][y] = true;q.push({x, y});}}}}for(int i = 0; i < m; i++)for(int j = 0; j < n; j++)if(grid[i][j] == 1 && !vis[i][j]) return -1;return ret - 1;}
};

java算法代码:

import java.util.*;
public class Solution
{int[] dx = {0, 0, 1, -1};int[] dy = {1, -1, 0, 0};public int rotApple (ArrayList<ArrayList<Integer>> grid) {int m = grid.size();int n = grid.get(0).size();boolean[][] vis = new boolean[m][n];Queue<int[]> q = new LinkedList<>();for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(grid.get(i).get(j) == 2){q.add(new int[]{i, j});}}}int ret = 0;while(!q.isEmpty()){int sz = q.size();while(sz-- != 0){int[] t = q.poll();int a = t[0], b = t[1];for(int i = 0; i < 4; i++){int x = a + dx[i], y = b + dy[i];if(x >= 0 && x < m && y >= 0 && y < n && vis[x][y] == false&& grid.get(x).get(y) == 1){vis[x][y] = true;q.add(new int[]{x, y});}}}ret++;}// 判断剩余的苹果for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(grid.get(i).get(j) == 1 && !vis[i][j]){return -1;}}}return ret - 1; }
}

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

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

相关文章

(a,b,0)类的计数分布

内容来源 保险风险与破产&#xff08;原书第二版&#xff09;科学出版社 定义 如果一个计数分布的分布律满足 p n ( a b n ) p n − 1 , n 1 , 2 , ⋯ p_n\left(a\frac{b}{n}\right)p_{n-1},n1,2,\cdots pn​(anb​)pn−1​,n1,2,⋯ 其中 a , b a,b a,b 均为常数&#x…

菜叶子芯酸笔记4:大模型训练、分布式训练、显存估算

大模型训练任务主要分为以下三种模型训练过程。 预训练pretrain 监督微调 supervised finetune training 奖励模型 reward model RLHF 它们之间的顺序联系用RLHF (reinforcement learning with human feedback) 过程来阐释。 首先预训练pretrain得到一个base模型。 到微调…

Python爬虫----python爬虫基础

一、python爬虫基础-爬虫简介 1、现实生活中实际爬虫有哪些&#xff1f; 2、什么是网络爬虫&#xff1f; 3、什么是通用爬虫和聚焦爬虫&#xff1f; 4、为什么要用python写爬虫程序 5、环境和工具 二、python爬虫基础-http协议和chrome抓包工具 1、什么是http和https协议…

什么是低温温度传感器

低温学是物理学的一个分支&#xff0c;处理极低温度的产生和影响。已经基于各种与温度相关的特性开发了低温温度传感器。常见的市售传感器包括电阻器&#xff0c;电容器&#xff0c;热电偶和诸如二极管或晶体管的半导体结器件。 主要标准级传感器对热和机械冲击非常敏感&#…

【SpringBoot】23 文件预览(kkFileView)

Gitee仓库 https://gitee.com/Lin_DH/system 介绍 文件预览功能是指在不打开或编辑文件的情况下&#xff0c;通过某种方式查看文件的内容、格式或者部分内容的功能。该功能通常用于文件管理系统、办公工具、在线教育平台、企业协作平台、电子邮件客户端等领域&#xff0c;能…

PC提取微信语音

首先&#xff0c;多选需要转存的语音信息——点击下方正方体图标收藏——打开收藏界面&#xff0c;找到语音文件打开——点击界面上放3个小点&#xff0c;选择转存为笔记。 然后&#xff0c;打开电脑端微信&#xff0c;点击左侧收藏图标&#xff0c;找到保存的语音文件打开&am…

STM32 ADC --- 单通道采样

STM32 ADC — 单通道采样 文章目录 STM32 ADC --- 单通道采样cubeMX配置代码修改&#xff1a;应用 使用cubeMX生成HAL工程 需求&#xff1a;有多个通道需要进行ADC采样&#xff0c;实现每次采样只采样一个通道&#xff0c;且可以随时采样不同通道的功能。 cubeMX配置 这里我们…

力扣 LeetCode 150. 逆波兰表达式求值(Day5:栈与队列)

解题思路&#xff1a; 逆波兰表达式就是从二叉树的后序遍历得来的&#xff08;左右根&#xff09;&#xff0c;因此计算机直接按顺序取出表达式中元素进行运算即可&#xff0c;无需考虑括号的运算顺序&#xff0c;加快运算速度 对于&#xff08;12&#xff09;x&#xff08;3…

交通路口智能监测平台实现

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月15日8点12分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅h…

Redis 持久化机制 RDB 和 AOF 区别

Redis 是一个开源的内存数据结构存储系统&#xff0c;广泛应用于缓存、会话存储、实时分析等场景。虽然 Redis 本质上是内存数据库&#xff0c;但它支持持久化机制&#xff0c;将数据保存在磁盘中以防止数据丢失。在 Redis 中&#xff0c;主要有两种持久化机制&#xff1a;RDB(…

uniapp动态获取练习题的内容选项和最终选择的结果

里面的练习题题目和选项都是动态获取的&#xff0c;提交的时候结果是多个单选题最终选择的值&#xff0c;重点是给单选组标签上加上change事件&#xff0c;多选通用&#xff0c;change事件内加一个回调&#xff0c;代码示例如下&#xff1a; <template> <view class&…

联想 ThinkPad的高级键盘功能

前言&#xff1a; 用好键盘是程序员最需要花时间了解的。 联想ThinkPAD的高级键盘功能和windows的键盘功能是不一样的。学习一下&#xff0c;给自己的工作&#xff0c;编程带来很大的的提高。花时间是有意义的。 调出设置&#xff1a; 1 先是键盘管理&#xff1a; 这里&#…

红黑树

目录 红黑树 红黑树的概念 红黑树的性质 红黑树节点的定义 插入的代码实现 情况一 情况二 uncle不存在 uncle存在且为黑单旋 情况三 uncle存在且为黑的双旋情况 情况二和情况三的总代码 以上是父亲在爷爷左边的情况,右边的情况也类似 左旋代码 右旋代码 红黑树…

MySQL进阶-索引的组合索引

练习题目 题目链接难度SQL进阶-索引的组合索引★★★☆☆ SQL思路 SQL进阶-索引的组合索引 初始化数据 drop table if exists user_profile; CREATE TABLE user_profile ( id int NOT NULL, device_id int NOT NULL, gender varchar(14) NOT NULL, age int , university va…

适用比亚迪汽车生产线的RFID高频读写器

随着人工智能和物联网技术的发展&#xff0c;汽车产线正朝着高度自动化和智能化的方向发展&#xff0c;许多汽车制造商选择将RFID技术应用在其生产线上&#xff0c;以提高生产效率、降低劳动强度。例如比亚迪等汽车生产线上已经广泛应用RFID技术。 健永科技利用自身的研发能力…

用Python实现中国象棋(详细教程 | 附代码)

创建一个完整的中国象棋游戏是一个复杂的项目&#xff0c;涉及到游戏规则、用户界面、AI算法等多个方面。在这里&#xff0c;我将提供一个更完整的Python代码示例&#xff0c;包括基本的棋盘、棋子移动规则和简单的用户交互。但请注意&#xff0c;这仍然是一个简化的版本&#…

力扣-Mysql-3308- 寻找表现最佳的司机(中等)

一、题目来源 3308. 寻找表现最佳的司机 - 力扣&#xff08;LeetCode&#xff09; 二、数据表结构 表&#xff1a;Drivers ----------------------- | Column Name | Type | ----------------------- | driver_id | int | | name | varchar | | age …

LeetCode 209.长度最小的子数组

209.长度最小的子数组 思路&#x1f9d0;&#xff1a; 该题可以用滑动窗口进行解答&#xff0c;滑动窗口的意思是&#xff0c;我们判断一段区间的情况&#xff0c;再根据不同情况进行区间的更新。 这里要求满足总和大于等于target的子数组&#xff0c;那么我们可以用两个指针当…

国网山东电力生产检修建设基地绿色低碳智慧用能项目获创新创意劳动竞赛一等奖

原标题&#xff1a;深化开展“供电能效服务”&#xff0c;全力推动全社会能效提升&#xff0c;国网山东电力生产检修建设基地绿色低碳智慧用能项目获得全省智慧综合能源服务项目创新创意劳动竞赛一等奖 11月14日,由山东省发展和改革委员会、山东省总工会、山东省能源局主办,山…

AIHub: 模型和数据集的私有云存储库

AIStor 的最新功能之一是广受欢迎的开源项目 Hugging Face 的私有云版本。这篇文章详细介绍了 AIStor 的 AIHub 如何有效地创建一个完全由企业控制的 API 兼容的私有云版本的 Hugging Face。在我们开始之前&#xff0c;介绍 Hugging Face 是有意义的。Hugging Face 是面向 AI 工…