[笔试训练](五)

013

游游的you__牛客网 (nowcoder.com)

题目:

 题解:

组成一个you需要一个o且能得2分,而组成相邻字母oo需要两个o,只能得1分。优先考虑组成尽可能多的you,再考虑剩下的o,放一起。

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

014

腐烂的苹果_牛客题霸_牛客网 (nowcoder.com)

题目: 

 

 题解:

多源bfs+最短路:将每层刚腐烂的的苹果放入队列中,同时用bool二维数组标记好,再找下一层,直到相邻没有完好的苹果为止。最后遍历一遍查看有没有没有标记的完好的苹果。

class Solution {
public:int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0};int m,n;bool vis[1100][1100];int rotApple(vector<vector<int> >& grid) {//多源bfsm=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]){q.push({x,y});vis[x][y]=true;}}}}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;}
};

015

孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

1.环形链表模拟:构建好环形链表后,沿着链表边遍历边删除节点。

2.递推/递归/动态规划

dp[i]表示:有i个孩子围成一圈时,最终剩下的孩子的编号是多少

每减少一个孩子时,同一编号对应的下标会改变,改变也是有规律的,也就是下标映射,根据下标映射,可得出状态转移方程。

//环形链表
class Solution {
public:struct Node{int val;Node* next;Node(int x):val(x),next(nullptr){}};int LastRemaining_Solution(int n, int m) {Node* head=new Node(0);Node* cur=head;for(int i=1;i<n;i++){cur->next=new Node(i);cur=cur->next;}cur->next=head;cur = head;  Node* prev = nullptr;  while (cur->next != cur) {  // 至少还有两个人在环中  for (int i = 1; i < m; i++) {  // 报数,找到第m个人  prev = cur;  cur = cur->next;  }  prev->next = cur->next;  // 从环中删除出列的人  delete cur;  // 释放内存  cur = prev->next;  // 从下一个人开始报数  }  return cur->val;delete cur;  // 释放最后一个节点的内存  }
};

 

//动态规划
class Solution {
public:int LastRemaining_Solution(int n, int m) {int f=0;for(int i=2;i<=n;i++){f=(f+m)%i;}return f;}
};

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

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

相关文章

Llama 3问世:迄今为止的最强开源大语言模型

导语 最近Meta发布了其研发的第三代开源大语言模型Llama 3&#xff0c;并宣称Llama 3为迄今为止的最强开源大语言模型&#xff0c;本文对其进行简要学习记录。若想了解之前版本的Llama模型&#xff0c;可参考我之前写的论文笔记&#xff1a;Llama、Llama 2、CodeLlama。 要点…

国产电子耳标识读器GALLAGHER盖力格平替

GALLAGHER盖力格是一家总部位于新西兰的全球技术公司&#xff0c;在动物管理方面处于全球领先地位。KEZMO科智牧对标GALLAGHER盖力格旗下的RFID电子耳标识读器&#xff0c;凭借自身强劲的研发实力&#xff0c;研发生产了属于我们自己的国产RFID电子耳标识读器&#xff1a;JY-L8…

报名 | Qt汽车及工业行业解决方案及实战训练 深圳站(5月15日 星期三)

加入我们的Qt技术培训&#xff0c;探索跨平台应用开发的无限可能&#xff01;本次培训将深入Qt框架&#xff0c;涵盖从基础概念到高级功能的全方位知识&#xff0c;无论您是刚入门的新手还是希望提升技能的资深开发者&#xff0c;都能在此找到适合自己的学习路径。通过实践案例…

开曼群岛:Web3企业的乐园

开曼群岛&#xff1a;Web3企业的理想之地 开曼群岛&#xff0c;在数字革命中大放异彩。近年来&#xff0c;该地区成立的Web3企业数量显著增加&#xff0c;如果保持目前的发展速度&#xff0c;并持续优化立法&#xff0c;那么扩展的速度将无可限量。本文将探讨推动这一增长的关…

代码随想录算法训练营DAY36|C++贪心算法Part.5|435.无重叠区间、763.划分字母区间、56. 合并区间

文章目录 435.无重叠区间按右边界排序CPP代码 按左边界排序如何判断相邻区间是否重叠如何判断一下一个区间与当前相邻区间是否重叠总结CPP代码 763.划分字母区间思路伪代码实现CPP代码 56. 合并区间思路CPP代码 435.无重叠区间 力扣题目链接 文章链接&#xff1a;435.无重叠区间…

MPC的横向控制与算法仿真实现

文章目录 1. 引言2. 模型预测控制&#xff08;MPC&#xff09;2.1 基础知识2.2 MPC的整体流程2.3 MPC的设计求解 3. 车辆运动学MPC设计4. 算法和仿真实现 1. 引言 随着智能交通系统和自动驾驶技术的发展&#xff0c;车辆的横向控制成为了研究的热点。横向控制指的是对车辆在行…

Linux--05---相对路径与绝对路径、终端的认识

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1. 相对路径与绝对路径切换到用户家目录&#xff1a;cd ~当前目录&#xff1a;./ 2. 对终端的认识3. 文件的类型颜色表示的文件类型&#xff1a;文件类型和权限的表…

Redis事务全解析:从MULTI到EXEC的操作指南!

【更多精彩内容,欢迎关注小米的微信公众号“软件求生”】 亲爱的粉丝朋友们,大家好!今天我们要讨论的主题是Redis的事务。Redis作为一款优秀的NoSQL数据库,凭借其高性能和灵活性广受欢迎。事务是Redis的一项关键功能,它为我们提供了一种在数据操作中确保一致性的机制。接…

每日一题---环形链表的约瑟夫问题

文章目录 前言1.题目2.解题思路2.1创建节点 2.2.创建环形链表2.3.进行遍历 4参考代码 前言 前段时间我们学习到了单链表和双向链表的相关知识&#xff0c;下面我们解决一道具有代表性的一个编程题。 牛客网—环形链表的约瑟夫问题 1.题目 2.解题思路 2.1创建节点 //创建节点…

CentOS 7.9.2007 中Docker使用GPU

一、安装nvidia驱动 1.1&#xff0c;查看显卡驱动 # 查看显卡型号 lspci | grep -i nvidia 1.2&#xff0c;进入 PCI devices &#xff0c;输入上一步查询到的 2204 1.3&#xff0c;进入 官方驱动 | NVIDIA&#xff0c;查询 Geforce RTX 3090 驱动并下载 1.4&#xff0c;禁用…

【SpringBoot整合系列】SpringBoot配置多数据源

目录 背景技术选型配置多数据源思路(以两个为例)代码实现1.导入依赖2.各自的配置 3.各自的dataSourcenews数据库的smbms数据库的注意&#xff1a;Primary注解 4.各自的SqlSessionFactory等news数据库的smbms数据库的 5.去掉启动类头上的MapperScan6.各自的mapper接口7.各自的ma…

齐护K210系列教程(八)_LCD显示图片

LCD显示图片 文章目录 LCD显示图片1&#xff0c;显示单张图片2&#xff0c;通过按键切换显示SD卡内的图片3&#xff0c;通过传感器切换图片4&#xff0c;画中画显示&#xff0c;并缩放5&#xff0c;课程资源 联系我们 AIstart 显示的图片的默认分辨率为&#xff1a;320*240 &am…