最少次数切水果问题

您所在的位置:网站首页 全部的水果 最少次数切水果问题

最少次数切水果问题

2024-07-10 04:29| 来源: 网络整理| 查看: 265

最少次数切水果问题 问题描述

小明在玩切水果游戏,已知屏幕上有若干水果,只允许用直线切水果,一次只允许划出一条直线,直线上的水果都会被消除掉;请求出小明最少需要切多少次才能把屏幕上的水果都切掉。已知屏幕由40X50的小方格组成,经过每个方格划出的直线最多只有4条,如下图所示经过红色方格(标注为8)能划出直线最多为4条,其中相同数字的方格属于同一直线(0为空);屏幕左上角坐标为(0,0),右下角坐标为(39,49)。

AI

输入描述

第一行输入整数N(0 0: self.update_list(self.fruit_remain) self.sort_openList() Temp_node = self.openList.pop(0) # 取出第一个节点 for temp_position in Temp_node.fruit_position: self.fruit_remain.remove(temp_position) # 对该直线下水果进行删除 self.closeList.append(Temp_node) # 放入close列表中 if len(self.openList) > 0: for node in self.openList: # 设置父节点 node.set_parent(Temp_node) ''' 从文件中读取水果数量和坐标 ''' def read_data(filename): f = open(filename + ".csv", 'r') reader = csv.reader(f) rows = [row for row in reader] data = [list(map(int, row)) for row in rows] n = data.pop(0)[0] # 提取水果数量总数 pos = copy.deepcopy(data) # 水果位置list合集 f.close() return [n, pos] # 获取当前环境版本 print("当前环境python版本为" + platform.python_version()) File = "./fruit5" # 默认读取的水果文件 Fnum = 0 # 水果数量初始化 F = [] # 水果位置合集 L = [] # 有水果的直线集合 rowth = 40 colth = 50 if (input("请选择数据输入方式:默认回车为从文件读取,任意输入非空字符后回车进入手动输入模式") == ""): [Fnum, F] = read_data(File) else: Fnum = int(input('请输入整数水果数量N(0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3