思维训练(算法+技巧)

server/2025/3/1 10:55:53/

1.深度优先搜索:暴力求解,适合判断能不能走出迷宫

      利用递归,有一个check【】数组来检查该节点是否经过

        for循环该节点的邻接节点(存在且没被访问),递归DFS(该节点的某个邻接节点)

DFS(初始顶点v,图...)

check[v] = 访问;

for(int i=0;i<n;i++){

if(邻接节点存在&&check【i】==未访问)

        DFS(邻接点)

}

2.广度优先搜索:适合找最短路径,最短走出迷宫

有一个check【】数组来检查该节点是否经过

利用队列,当前节点被访问,它的邻接节点加入队列

BFS(接受初始顶点v,图)

{

访问v;

check[v] = 访问;

Queue.push(v)

while(queue不为空)

{

        Queue.pop(v);

        遍历v的邻接结点for(i.....)

                                {

                                        if(邻接节点存在且未访问)

                                        {

                                                访问该节点;

                                                check【i】 = 访问;

                                                i入队

                                        }

                                }

}

}

3.对于一个数字,题目关于它的位数操作,可以用while循环配上%(取模),/(除法)来逐步减位数,进行操作

#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>> n;int sum=0;for(int i=1;i<n+1;i++){int x=i;while(x>0){int ge = x%10;x/=10;if((ge==2)||(ge==0)||(ge==1)||(ge==9)){sum+=i;   break;}}}cout<< sum;return 0;
}

4.对于某组数字判断其是否包含某些数字,可以将该组数字排序,然后寻找

#include<bits/stdc++.h>
using namespace std;
//某人年龄立方是4位数,四次方是6位数,并且这10个数字包含了0-9,求这个年龄
bool panduan(long long cube,long long forth)
{string s = to_string(cube)+to_string(forth);//满足10个数字if(s.size()==10){//对这个字符串排序sort(s.begin(),s.end());for(int j=0;j<10;j++){if(s[j] !='0'+j)return false;}}return true;
}
int main()
{//估算出年龄在10-30之间for(int i=10;i<30;i++){long long cube = (i*i*i);long long forth = (i*i*i*i);int flag = false;//满足位数条件if((cube)>1000&&(cube)<10000&& (forth)>100000 && forth<1000000){if(panduan(cube,forth)==true)cout<<"年龄是:"<< i;}}return 0;
}


http://www.ppmy.cn/server/171527.html

相关文章

MySQL--DCL全解全知

MySQL 权限管理详解&#xff08;面试重点&#xff09; 一、权限管理核心语法 1. GRANT​ 授予权限 GRANT 权限1, 权限2, ... ON 权限级别 TO 用户名主机 [IDENTIFIED BY 密码] [WITH GRANT OPTION | 其他资源限制];权限列表&#xff1a; SELECT, INSERT, UPDATE, DELETE, C…

鹏信科技入选2024年网络安全技术应用典型案例项目名单

近日&#xff0c;工业和信息化部等十三部门办公厅&#xff08;办公室、秘书局、综合司&#xff09;联合发布了《2024年网络安全技术应用典型案例项目名单》&#xff0c;鹏信科技安全综合能力管理平台荣幸入选。此次入选&#xff0c;不仅是对鹏信科技创新实力和技术水平的充分肯…

Android+SpringBoot的老年人健康饮食小程序平台

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 我将从经济、生活节奏、技术融合等方面入手&#xff0c;详细阐述居家养老管理模式兴起的…

qt之Vertical Layout

在 Qt 中使用垂直布局&#xff08;QVBoxLayout&#xff09;的完整指南如下&#xff1a; 1. 垂直布局&#xff08;QVBoxLayout&#xff09;的作用 用于将控件按**垂直方向&#xff08;从上到下&#xff09;**依次排列&#xff0c;自动管理控件的位置和大小&#xff0c;适配不同…

Postman接口测试工具使用

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、前言 在前后端分离开发时&#xff0c;后端工作人员完成系统接口开发后&#xff0c;需要与前端人员对接&#xff0c;测试调试接口&#xff0c;验证接口的正确…

【精华】为什么class在前端开发中不常用?

为什么class在前端开发中不常用&#xff1f; js是一种基于原型的语言。它的对象继承是通过 原型链&#xff08;prototype chain&#xff09;实现的&#xff0c;每个对象都有一个 proto 属性指向它的原型。&#xff08;大多数传统面向对象语言&#xff08;如 Java、C、Python、…

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_t

ngx_conf_t 定义在src/core/ngx_core.h typedef struct ngx_conf_s ngx_conf_t;ngx_conf_s 定义在 src/core/ngx_conf_file.h struct ngx_conf_s {char *name;ngx_array_t *args;ngx_cycle_t *cycle;ngx_pool_t *po…

Linux-基本指令1

一.ls 语法&#xff1a;ls [选项] [⽬录或⽂件] 功能&#xff1a;对于⽬录&#xff0c;该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件&#xff0c;将列出⽂件名以及其他信 息。 常用选项&#xff1a; 二.pwd 语法: pwd 功能&#xff1a;显⽰⽤⼾当前所在的⽬录 三.cd L…