1.31总结

news2024/10/7 14:30:05

为什么和以前标题不一样了呢,是因为今天我感觉学到的东西太少了,很难按专题发,索性就直接写个总结水一篇好了

第一题:遍历问题

 

题解:真的纯思维题目,真的没啥,可说的,中序遍历取决于什么呢,我们通过上述实例,发现中序遍历的种类只取决于单个的结点(即我们只需要判断这个单个的没有兄弟的结点出现了几次)

通过思考我们会发现,这种单个的没有兄弟的结点出现的情况必然是在前序遍历中是‘AB’型,在后序遍历中就是‘‘BA’型,因此我们就可以循环去判断是否存在这样的结点

AC代码

#include <bits/stdc++.h>
using namespace std;

char a[100];
char b[100];
int main()
{
    scanf("%s",a);
    scanf("%s",b);
    int n=strlen(a);
    unsigned long long sum=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i]==b[j]&&a[i+1]==b[j-1]&&j-1>=0)
            {
                sum+=1;//统计单个结点的情况出现了多少次
            }
        }
    }
    int jie=1;
    for(int i=0;i<sum;i++)
    {
        jie*=2;//只需要没有一个结点就是2的n次方
    }
    printf("%d",jie);
    return 0;
}

 第二题:修复公路

 

题解:这题说难吧,也不是很难,就是需要在排序的时候用到快排,普通的排序会时间超限,

我们要对时间进行排序,让时间最少的先并在一起,然后遍历这块树,检查所有结点是否都并在一起,是否都并在一起我们要在并的操作上做一个处理,就是要下标大的并在下标小的上面,这样除了s[1]数组,别的存储的根节点都是1,有了思路就可以来看代码了

AC代码

#include<bits/stdc++.h>
using namespace std;
int n,m;
int s[1005];
struct lu
{
    int x;
    int y;
    int t;
}l[100005];//将三个变量整成一个结构体,方便后续的交换
bool cmp(lu a,lu b)//升序来进行排列
{
    return a.t<b.t;
}
int temp;

int cha(int x)//查根节点
{
    while(s[x]>=0)
        x=s[x];
    return x;
}
void bing(int root1,int root2)//合并两个子树
{
    if(root1==root2) return ;
    if(root1<root2)
        s[root2]=root1;
    else
        s[root1]=root2;

}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1; i<=n; i++)
    {
        s[i]=-1;
    }
    for(int i=0; i<m; i++)
    {
        scanf("%d%d%d",&l[i].x,&l[i].y,&l[i].t);
    }
   sort(l,l+m,cmp);
    int sum;
    for(int i=0; i<m; i++)
    {
        sum=0;
        bing(cha(l[i].x),cha(l[i].y));
        for(int j=2; j<=n; j++)
        {
            if(s[j]!=-1)除了s[1]别的存储的都不会是-1这个数值
            {
                sum+=1;
                if(sum==n-1)//
                {
                    printf("%d",l[i].t);//输出最小时间
                    return 0;
                }
            }
        }
    }
    printf("-1");
    return 0;
}

 第三题:Grid Ice Floor

 

题解:这题相比于一般的深搜不一样,一般的的深搜是一步一步走,而这个是一下走到底,但终归还是大相径庭,很容易的就想到了

#include<stdio.h>
int dx[5]= {0,-1,0,1,0};//代表走法
int dy[5]= {0,0,-1,0,1};
int res;
char s[205][205];//棋盘数组
int book[205][205];//标记数组
int n,m;//棋盘大小
void dfs(int x,int y,int z)//x代表横坐标,y代表纵坐标,z代表方向
{
    int tx=x+dx[z];//在这个方向下一步所走到的地方
    int ty=y+dy[z];
    if(s[tx][ty]=='.')//如果可以通行
    {
        book[tx][ty]=1;//先标记了
        dfs(tx,ty,z);//在继续搜索
    }
    else//不能通行就说明碰到墙体了,这方向找完了
    {
        for(int i=1; i<5; i++)
        {
            tx=x+dx[i];//遍历四个方向的走法,看下次往哪个往哪个方向走
            ty=y+dy[i];
            if(s[tx][ty]=='#')//碰到墙体要排除,要在合法区间
                continue;
            while(book[tx][ty])
            {
                tx+=dx[i];
                ty+=dy[i];
            }
            if(s[tx][ty]=='.')//碰到路就继续标记,深搜
            {
                book[tx][ty]=1;
                dfs(tx,ty,i);
            }
        }
    }
}

int main()
{
    scanf("%d %d",&n,&m);//输入棋盘的大小
    getchar();
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=m; j++)
            scanf("%c",&s[i][j]);//输入棋盘布局
        getchar();
    }
    book[2][2]=1;//标记起始位置已经走过
    dfs(2,2,3);//肯定深搜俩方向,其余方向都是墙
    dfs(2,2,4);
    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++)
            if(book[i][j])//只要标技术组标记过,就证明其访问过
                res++;
    printf("%d",res);
    return 0;
}

 

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

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

相关文章

双目模组 - IMSEE SDK的配置实践:含Opencv的详细编译配置

IMSEE 的环境要求: CMake(3.0以上)(需要支持vs2019) Visual Studio 2019 opencv3.3.1 IMSEE-SDK 官网参考: Windows 源码安装 — IMSEE SDK 1.4.2 文档 (imsee-sdk-docs.readthedocs.io) 【案】按照IMSEE的建议进行安装: 1 Windows 安装: 1.1 环境准备: 1.1.1 CMake:in…

时序数据库 Tdengine 执行命令能够查看执行的sql语句

curl是 访问6041端口&#xff0c;在windows系统里没有linux里的curl命令&#xff0c;需要用别的工具实现。我在cmd里是访问6030端口 第一步 在安装是时序数据库的服务器上也就是数据库服务端 进入命令窗口 执行 taos 第二步 执行 show queries\G;

nop-entropy可逆计算入门(1)

第1步&#xff1a;从大佬的gitee&#xff1a;https://gitee.com/canonical-entropy/nop-entropy下载源码&#xff0c;进行本地编译&#xff0c;具体编译看项目下的readme,想偷懒的可以下载我编译后的jar&#xff0c;放到自己的maven仓库 https://pan.baidu.com/s/15qANnrCh5RV…

这都2024年了 你还要多久才能领悟 ArrayBlockingQueue 源码

这都2024年了 你还要多久才能领悟 ArrayBlockingQueue 源码 文章目录 这都2024年了 你还要多久才能领悟 ArrayBlockingQueue 源码阻塞队列简介阻塞队列的历史阻塞队列的思想 ArrayBlockingQueue 常见方法及测试ArrayBlockingQueue 源码分析整体设计初始化阻塞式获取和新增元素非…

python数据类型-列表

1 python中列表的定义 python中列表是一种有序和可更改的集合&#xff0c;允许重复的成员&#xff0c;列表中的元素之间数据类型可以不同&#xff08;元素之间数据类型可以不相同&#xff0c;这一点和其它的面向对象的开发语言有很大的不同&#xff0c;如C#、Java&#xff09;…

大创项目推荐 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

Unity_Visual Effect Graph

Unity_Visual Effect Graph Unity可视化特效渲染虽不及Unreal Engine,然也还是吊打一众其他引擎的,粗浅整理一波吧,需要深入研究的点实在是太多了。 按照常规包管理方式安装Visual Effect Graph插件: 安装之后,示例文件夹中自带资源,拖入场景即可: 场景只是资源的显…

如何搭建一个成功的家装预约咨询小程序

微信小程序是一种在微信平台上运行的应用程序&#xff0c;为企业提供了一个快速、便捷的方式与用户进行交互和服务。开通微信家装预约咨询小程序店铺&#xff0c;可以帮助家装企业更好地与用户进行沟通和服务&#xff0c;提升用户体验和便捷度。下面我们就来详细介绍一下开通微…

(自用)learnOpenGL学习总结-高级OpenGL-几何着色器

在顶点着色器和片段着色器中间还有一个几何着色器。 几何着色器的输入是一个图元的一组顶点&#xff0c;在几何着色器中进行任意变换之后再给片段着色器&#xff0c;可以变成完全不一样的图元、可以生成更多的顶点。 #version 330 core layout (points) in; layout (line_str…

R高级绘图 | P1 | 带边缘分布散点图 | 代码注释 + 结果解读

新系列 —— R高级绘图&#xff0c;准备整理所有曾经绘制过的图图和未来需要的图图们的代码&#xff01;预计这个系列会囊括所有常见图形&#xff0c;只提供高级绘图代码&#xff0c;基础绘图主要在 R语言绘图 系列中进行介绍&#xff0c;这个系列咱们主打&#xff1a;需要XX图…

[Java 并发基础]多线程编程

文章参考&#xff1a; https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html https://juejin.cn/post/6970558076642394142 文章目录 线程的创建方式继承 Thread实现 Runnable 接口实现 Callable 接口使用 Lambda使用线程池 线程创建相关的 jdk源码Thr…

阿赵UE学习笔记——13、贴花

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。这次介绍一种特殊的材质类型&#xff0c;贴花。 一、获取贴花资源 在没有分析贴花的原理之前&#xff0c;可以先去获得一些免费的贴花资源来使用&#xff0c;比如在Quixel上面就有专门的一个资源…

Git - 在公司中,使用 git 的流程是什么?遇到冲突怎么办?

目录 一、公司中 git 的使用流程 1.1、设置用户签名 1.2、创建分支&#xff0c;提交代码到远程仓库 1.3、创建 pr&#xff0c;code review 1.4、意外情况&#xff1a;分支冲突 一、公司中 git 的使用流程 1.1、设置用户签名 刚进公司&#xff0c;肯定是先初始化个人的用户…

教师社会地位最直观的表现是什么

教师社会地位最直观的表现是什么&#xff1f;当我们谈及教师社会地位时&#xff0c;不能仅仅从薪资、荣誉等角度去理解&#xff0c;而应从教师的工作环境、待遇、以及社会对教师的认知和尊重程度等方面进行全面考察。 教师的工作环境是他们社会地位的直观体现之一。一个良好的…

备战蓝桥杯---数据结构与STL应用(优先队列的小细节)

很显然&#xff0c;我们先二分求X,对于验证&#xff0c;一开始我先想的是直接求每个的不足电量再除充电量后向上取整&#xff0c;然后判断与k的大小关系。事实上&#xff0c;如果让k很大&#xff0c;若有两只手机在下一刻多没电&#xff0c;显然上述方法得出的结论是错误的&…

虹科干货 | 如何使用nProbe Cento构建100 Gbit NetFlow 传感器

本文是一份全面的指南&#xff0c;解释了如何使用nProbe Cento构建一个高效的100 Gbit NetFlow传感器。旨在帮助大家充分利用NetFlow技术&#xff0c;以监控和分析高速网络流量。 当需要监控分布式网络&#xff0c;了解流经上行链路或关键网段的网络流量时&#xff0c;NetFlow…

【JVM】类加载流程

目录 1.加载 2.链接 &#xff08;1&#xff09;校验 &#xff08;2&#xff09;准备 &#xff08;3&#xff09;解析 3.初始化 4.使用 5.卸载 1.加载 加载阶段&#xff0c;简言之&#xff0c;查找并加载类的二进制数据&#xff0c;生成 Class 的实例 在加载类时&#x…

SpringCloud_学习笔记_1

SpringCloud01 1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff…

Trinamic推出嵌入式运动控制模块,用于驱动大功率工业电机,大幅降低功耗

集成的实时、无传感器控制与驱动技术将功率损耗降低50%&#xff0c;可驱动功率高出三倍的电机(高达7A) TRINAMIC推出两款新型插槽式运动控制嵌入式模块及其开发工具&#xff0c;采用独特的实时无传感器控制技术。这些完备的控制/驱动模块通过在其板上实时处理关键功能&#xff…

JDBC 结构优化2

JDBC 结构优化2 文章目录 JDBC 结构优化2结构优化2 - ATM系统(存,取,转,查)1 Service2 事务3 ThreadLocal4 事务的封装 结构优化2 - ATM系统(存,取,转,查) 1 Service 什么是业务? 代表用户完成的一个业务功能&#xff0c;可以由一个或多个DAO的调用组成。软件所提供的一个功…