首页 > 编程语言 >HJ67_24点游戏算法_多维递归_DFS(深度优先搜索)

HJ67_24点游戏算法_多维递归_DFS(深度优先搜索)

时间:2023-04-08 17:13:38浏览次数:40  
标签:24 num temp dfs 括号 HJ67 DFS 多维

思路:

多维递归,深度有限遍历加减乘除四种情况。

知识点:

1、多维递归不能对传递的变量进行修改,否则无法回溯。

应该传递一个新地址的变量,如代码所示,传递切片的列表,不修改列表

 

 2、搜索遗漏。两括号比如((9-4)-1)*6

选取任意一个数作为第一个运算数与24运算,不能找出所有24点的计算方法。因为存在两个非嵌套括号的情况。

 

 

去除括号思路:不能按列表顺序进行运算。需要遍历每个数可作为第一个数运算的可能性。但是这种方法也只是去除嵌套括号,遍历不到非嵌套括号。但是通过了测试案例。该程序如下:

参考高赞答案后程序如下:

 1 import sys
 2 a=list(map(int,sys.stdin.readline().strip().split()))
 3 l=[]
 4 num=24
 5 def dfs(a,num):
 6     if len(a)==1:
 7         if num==a[0]:
 8             l.append(1)
 9         return         
10     elif len(a)>=1:
11         for i in range(len(a)):
12             temp=a[:i]+a[i+1:]            
13             dfs(temp,num+a[i])
14             dfs(temp,num-a[i])
15             dfs(temp,num*a[i])
16             dfs(temp,num/a[i])
17 dfs(a,num)
18 if 1 in l:
19     print("true")
20 else:
21     print("false")

 

 

 

 

 

 

 

程序:

 

标签:24,num,temp,dfs,括号,HJ67,DFS,多维
From: https://www.cnblogs.com/tanyuanqing/p/17298815.html

相关文章

  • Leetcode(剑指offer专项训练)——DFS/BFS专项(1)
    计算除法题目给定一个变量对数组equations和一个实数值数组values作为已知条件,其中equations[i]=[Ai,Bi]和values[i]共同表示等式Ai/Bi=values[i]。每个Ai或Bi是一个表示单个变量的字符串。另有一些以数组queries表示的问题,其中queries[j]=[Cj,Dj]......
  • Educational Codeforces Round 124 (Rated for Div. 2)
    题目链接C核心思路其实还是得根据样例,首先我们先自己分析出来。现根据边地数目来分析。我们其实不难发现四个端点必须得连上边。边数为2.那么只有两条竖线。方案数是一种边数为3,那么就一条竖线还有就是一把叉这里交换位置就是两条了。还有就是平行四边形和一条斜线,也是可以......
  • K8S 1.24.1 helm 部署 kafka 和 kafka-console-ui
    背景IP角色中间件172.16.16.108k8s-master-1kafka,zookeeper172.16.16.109k8s-node-1kafka,zookeeper172.16.16.110k8s-node-2kafka,zookeeper部署kafkamkdir-p/data/yaml/klvchen/kafka&&cd/data/yaml/klvchen/kafka#添加bitnamichar......
  • angular项目启动报Another process, with id 24289, is currently running ngcc.
    在npmbuild时突然停下来,再启动就启不起来了。看报错信息是端口被占用,在任务管理器中也找不到这个端口重启vscode、重启电脑都不好使。。可以通过删除node_modules再重新npminstall解决! ......
  • ZOJ - 2421 Recaman's Sequence(打表水题)
    题目大意:A0=0Am=A(m-1)-m,如果Am小于0或者Am前面已经出现过了,那么Am=A(m-1)+m解题思路:打表水题我用的是map,纪录数是否出现过了#include<cstdio>#include<cstring>#include<map>usingnamespacestd;constintN=500010;typedeflonglongLL;map<LL,int>Ma......
  • UVA - 10245 The Closest Pair Problem 分治法
    题目大意:给出一系列的点,求出距离最近的两点的距离的大小,如果该距离大于10000,则输出INFINITY,如果不是的话,输出保留四个小数点的距离解题思路:如果裸的枚举的话,无疑是TLE,O(n^2)的算法既然不行的话,就换分治法试试,将其按X轴坐标的大小排序,由小到大,分别求出每部分的大小,然后进行比较,比较难......
  • HDFS存储介绍
    1:datanode数据节点-存放数据的2:namenode 名字节点-主要是存放元数据的,比如:文件大小 名称存放位置等3:secondarynamenode是存放fimage信息的,具体解释如下:namenode   fimage   editlognamenode中每次有信息变化的时候,都会放到editlog中,然后由editlog同步......
  • Keil ERROR C249: 'DATA': SEGMENT TOO LARGE
    1、网上都说存储器模式改为大型即可,但是我尝试后发现有点问题。 2、经过很多操作,最后解决了(1)unsignedcharcodeNumM[480],添加code关键字,但是这不是问题关键;(2)本来声明了两个数组,一个是unsignedcharcodeNumM[256],一个是unsignedcharHanzi[14][16],最初采用把Hanzi数组也......
  • 题目 1024: [编程入门]矩阵对角线求和
    求一个3×3矩阵对角线元素之和。 解题思路和注意事项: 这道题还是蛮简单,首先要求求一个矩阵的主副对角线的元素和,那肯定要用到的就是多维数组。        多维数组的形式应该为:array[i][j]; 知道这个后我们开始分析题目:        先是主对角线,就是从左上到......
  • DFS分布式文件系统
    一、GFS文件系统概述1.GlusterFS简介GlusterFS是一个开源的分布式文件系统。由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。MFS传统的分布式文件系统大多通过元服务器来存储元数据,元数......