多边形游戏

一个特别有意思的算法——多边形游戏 世界上有许许多多的不可能,但是即使再不可能。合全人类的力量还能做不成吗 地球本身就是一个大的自然圈。而这些用具、房屋、衣物不都是人类一点点装饰起来的 我认为从无到有是最困难的事情。然而文明、科技、器械等一代代创建和传承。 所以我们面对困难不要轻言放弃,哪怕用自己的想法证明这是一件我做不到、就是一件困难的事情,也要按照这个想法做一遍。 本篇介绍一个多边形游戏算法,它也是一个动态规划的经典算法。 1... 阅读详情

题目描述:
多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符“+”或“*”。所有边依次用整数从1到n编号。
游戏第1步,将一条边删除。

随后n-1步按以下方式操作:
(1)选择一条边E以及由E连接着的2个顶点V1和V2;
(2)用一个新的顶点取代边E以及由E连接着的2个顶点V1和V2。将由顶点V1和V2的整数值通过边E上的运算得到的结果赋予新顶点。
最后,所有边都被删除,游戏结束。游戏的得分就是所剩顶点上的整数值。
问题:对于给定的多边形,计算最高得分。

这题和合并石子是同样的思想。
要解决环的问题,可以维护一个2*n的数组
[n..2*n-1]与[0..n-1]一致。

F[i][j] 表示从i到j的最大值
S[k] 表示k到k+1之间的符号
count( int a,int b,char c )
{
if( c == '+' )
    return a+b;
else
    return a*b;
}
F[i][j] = max{ count( F[i][k],F[k+1][j],S[k] ) }
0 <= i < n
0 <= j < 2*n
j = i + len
0 < len < n
i <= k < j

if( j+n < 2*n )
    F[i+n][j+n] = F[i][j];

初始化:
F[i][i] = value[i]

在F[i][i+n-1] ( 0 <= i < n )
中找最大值

 

动态规划之多边形游戏 目录 多边形游戏简介 举例以及详细分析 代码块 测试结果 多边形游戏简介问题描述: 多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符“+”或“*”。所有边依次用整数从1到n编号。  游戏第1步,将一条边删除。  随后n-1步按以下方式操作:  (1)选择一条边E以及由E连接着的2个顶点V1和V2;  (2)用一 阅读详情

相关推荐

动态规划:多边形游戏

大家好,我是连人。本期继续讨论动态规划的问题。 已知一个n边的多边形,在n个顶点上都有一个整数,在n条边上都存在‘+’或‘*’号。 游戏开始时,撤掉一条边。剩下的就会变成由n个顶点,n-1条边所组成的链条。 将其中两个相邻的顶点按之间的运算符进行运算,这两个顶点和这条边被替换为运算结果,链条被削减为n-1个顶点,n-2条边。如此反复直到最后只剩下一个点。 多边形游戏的目的是找到最大的最后一个...

mirocky的博客 2090

动态规划-多边形游戏算法

动态规划-多边形游戏 全网最详解

敷衍zgf的博客 8392

0015算法笔记——【动态规划】多边形游戏问题

1、问题描述:          给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针 依次编号为1~N。下图给出了一个N=4个顶点的多边形。      游戏规则 :(1) 首先,移走一条边。 (2) 然后进行下面的操作: 选中一条边E,该边有两个相邻的顶点,不妨称为V1和V2。对V1和V2顶点所标的整数按照E上所标运算符号(+或是×)进行

liufeng_king的专栏 1万+

3.6 多边形游戏

对于多边形游戏,一种特定类型的玩法,即在给定的简单多边形上进行移动、删除顶点或边,并根据规则计算得分的游戏。这类游戏可以涉及到不同的规则和目标,具体的玩法可能有所不同,但其基本思想是根据给定的操作方式,通过选择和移动顶点或边,使得得分最高。在这类游戏中,玩家需要仔细观察多边形的形状和特征,并根据规则进行决策。常见的操作可能包括选择一个顶点或边,将其移动到新的位置,或者删除它,然后重新计算得分。得分的计算方式可能与多边形的属性有关,比如边长、角度、对称性等。

tang7mj的博客 2575

多边形游戏,嘻嘻

import java.util.Scanner; public class Main { public static void main(String[] args) { Game game=new Game(); System.out.println("最大值:"+game.getMax()); } } class Game{ static int n;//n表示多边形边数 static String[] op;//o

Jason_handsome的博客 772

多边形游戏源代码

 上课的时候突然发现这个算法有点小小的变动,就改了一下,大家慢慢看:#include stdio.h>#include stdlib.h>#include ctype.h>#include iostream.H>#define N 5         //可以通过改N的值来达到您的需求,当然如果你有兴趣的话,                           // 也可以自己编写一个

StoneRain 1822

多边形游戏(DP)

Description 多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符 "+" 或 "*"。所有边依次用整数从1到n编号。 游戏第1步,将一条边删除。 随后的n-1步按以下方式操作: (1)选择一条边E以及由E连接着的两个顶点V1和V2; (2)用一个新的顶点取代边E以及由E连接着的两个顶点V1和V2。将由顶点V1和...

weixin_30646315的博客 333

动态规划算法—多边形游戏

多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符”+”或”*”。所有边依次用整数从1到n编号。 游戏第1步,将一条边删除。 随后n-1步按以下方式操作: (1)选择一条边E以及由E连接着的2个顶点V1和V2; (2)用一个新的顶点取代边E以及由E连接着的2个顶点V1和V2。将由顶V1和V2的整数值通过边E上的运算得到的结果赋予新顶点。 最后,所有边都被删除,游戏结束。游戏的得分就是所剩顶点上的整数值。 包括代码+流程图+uml+实验总结

算法:多边形游戏

1、问题描述: 给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针 依次编号为1~N。下图给出了一个N=4个顶点的多边形。 游戏规则 :(1) 首先,移走一条边。 (2) 然后进行下面的操作: 选中一条边E,该边有两个相邻的顶点,不妨称为V1和V2。对V1和V2顶点所标的整数按照E上所标运算符号(+或是×)进行运算,得到一个整数;用该整数标...

顾道长生的科研笔记 2428

Python爬虫实战:5分钟搞定Web of Science文献批量导出与解析(附完整代码)

本文提供了一套利用Python爬虫技术,快速实现Web of Science文献批量提取与解析的完整方案。通过解析官方导出的HTML文件,结合BeautifulSoup和pandas库,可将文献数据自动转换为结构化的Excel/CSV表格,帮助科研人员高效管理文献信息,节省大量手动整理时间。

weixin_29050513的博客 1165

PromptBio实战:如何用AI对话搞定转录组数据分析(附详细操作截图)

本文详细介绍了如何利用PromptBio平台通过AI对话完成转录组数据分析,无需编程基础即可实现从数据上传到结果解读的全流程。文章包含详细的操作截图和参数配置建议,帮助科研人员快速掌握这一生信分析工具,显著提升研究效率。

weixin_30872157的博客 135

多边形游戏 java实现

不积跬步无以至千里,不积小流无以成江海。 4390

深入解析FOC电流环PI参数整定:从理论到实践

本文深入解析了FOC(磁场定向控制)中电流环PI参数整定的核心原理与实践方法。文章从永磁同步电机模型出发,详细阐述了基于带宽与零极点对消的工程法及考虑逆变器延迟的二阶系统整定法两种经典策略,并提供了从理论计算到安全上电调试的完整步骤与常见问题解决方案,帮助工程师精准调校电机控制性能。

weixin_29164497的博客 449

JAVA实现多边形游戏

5、实验四多边形游戏 实验内容 按照要求输入多边形的边和顶点,游戏第一步: 删除一条边, 随后的n-1步按以下方式操作: 1)选择一条边E以及由E连接着的2个顶点v1和v2 2)用一个新的顶点取代边E以及由E连着的2个顶点v1和v2。将由顶点v1和v2的整数值通过边E上的运算得到的结果赋予新顶点。直到最后,所有边被删除,确认使结果达到最大值的删除方式和最大值。 解题思路 通过所给的多边形,从顶点i(1<=i<=n)开始,长度为j(链中有j个顶点)的顺时针链p(i,j)可表示为v[i],op

不会飞的王 1416

嘉立创封装图下载后必做的3步优化(附批量删除机械层技巧)

本文针对从嘉立创下载的封装图,系统讲解了三步核心优化流程,以解决其直接使用时的常见问题。重点介绍了如何高效批量删除冗余的机械层,避免制造错误;并详细说明了规范丝印层间距、统一焊盘命名等关键步骤,帮助工程师将第三方封装转化为可靠、合规的设计资源,从而提升PCB设计效率与文件质量。

weixin_29227585的博客 433

本地通知与健康数据的隐私保护方案

随着移动健康(mHealth)应用的普及,本地通知与健康数据的结合为用户提供了更加个性化的健康管理体验。然而,这种便利性也带来了严峻的隐私保护挑战。本文旨在探讨如何在移动应用中实现本地通知功能的同时,确保用户健康数据的隐私安全。本地通知与健康数据结合的技术架构隐私保护的核心技术方案具体算法实现与数学模型实际应用案例分析本文首先介绍背景知识和核心概念,然后深入探讨隐私保护的技术方案,包括算法原理和数学模型。接着提供实际代码实现和应用场景分析,最后讨论未来发展趋势和挑战。

移动开发前沿的博客 1309

算法设计——多边形游戏(动态规划)

问题 多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构 成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个 运算符“+”或“*”。所有边依次用整数从1到n编号。 游戏第1步,将一条边删除。 随后n-1步按以下方式操作: (1)选择一条边E以及由E连接着的2个顶点V1和V2; (2)用一个新的顶点取代边E以及由E连接着的2个顶点V1和V2。 将由顶点V1和V2的整数值通过边E上的运算得到的...

Doro_的博客 7045

【PCL常用分割器】SACSegmentation

是一种基于采样一致性(Sample Consensus)的点云分割方法。它通过从点云中选取少量样本,拟合参数化几何模型(如平面、圆柱),并评估所有点与模型的误差一致性,最终选择内点集合最优的模型作为分割结果。与其他分割器(Region Growing、EuclideanClusterExtraction)不同,它不依赖空间连通性,而是依赖几何一致性。

yijiujiusan的博客 1309
上一篇: 奶牛的锻炼
下一篇: 差分约束系统 AND 最小表示法
code_beauty
博客等级 码龄16年 25粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值