Vijos 1565 多边形 【区间DP】】的更多相关文章

描述 zgx给了你一个n边的多边形,这个多边形每个顶点赋予一个值,每条边都被标上运算符号+或*,对于这个多边形有一个游戏,游戏的步骤如下:(1)第一步,删掉一条边:(2)接下来n-1步,每步对剩下的边中的一条进行操作,用一个新的顶点取代这条边.将这条被取代的边两端的顶点的整数值通过边上的运算得到的结果赋予新顶点. 最后,所有的边被删除,只剩一个定点,这个定点的整数值就是游戏的最后得分. 你要做的就是算出给你的多边形能得到的最高分和最低分. 格式 输入格式 第一行,n;第二行,n条边的运算符:第三…
题目:http://poj.org/problem?id=1179 区间DP,值得注意的是有负值,而且有乘法,因此可能会影响最大值: 注意memset中写-1仅仅是-1,-2才是一个很小的负数: 最后找mxx时也要注意可能最大是负值,因此不能随便给mxx赋成0或-1之类. 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; ],mx[][],mn[][],ans…
原题链接:https://www.acwing.com/problem/content/285/ 题意简单来说就是:给你一个环,断掉一条边使其成为一个链,用这个链跑dp,求最大得分. 首先这不是一道板子题...跟板子区别如下: 1.多了一重循环,最开始要求断掉一条边,但是我们不知道要断掉哪一条边,因此需要循环一遍来比较. 2.计算方法有加法有乘法,而且数据有正数有负数.这两个条件任意一个都不足惧,但是如果凑在一起...就很微妙了. 何出此言?比如说,我们用 f [ i ] [ j ]来表示从i号…
给定一个由N个顶点构成的多边形,每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘法运算),所有边依次用整数1到N标识. 一个多边形的图形表示 首次移动,允许将某条边删除: 接下来的每次顺序移动包括下面步骤: 1.选出一条边E,以及由E联接的顶点V1和V2: 2.用一个新的顶点,取代边E及其所联接的两个顶点V1和V2.新顶点要赋予新的值,这个值是对V1和V2,做由E所指定的运算,所得到的结果. 所有边都被删除后,只剩下一个顶点,游戏结束.游戏的得分就是该顶点的数值. 任…
题目链接: https://vijos.org/p/1100 题目大意:NOIP著名的加分二叉树.给出一棵树的中序遍历,加分规则左子树*右子树+根.空子树分数为1.问最大加分的树结构,输出树结构的先序遍历. 解题思路: 先从小的问题看起. 对于一棵子树,只要知道根是啥,就能轻松求出这棵子树的加分情况. 那么就变成枚举根的区间DP问题. 由于要输出先序遍历,则用m[i][j]记录在i~j区间选择的根. 区间DP边界: ①一个点情况:即无左右子树,dp[i][i]=node[i],m[i][i]=i…
链接:https://vijos.org/p/1002 题意:一条长度为L(L <= 1e9)的桥上有N(1<= N <= 100)颗石头.桥的起点为0终点为L.一只青蛙从0开始跳,每次跳的长度在s,t(1<= s <= t <= 10)之间.问青蛙过河最少踩到的石头的数量? 思路:区间dp的感觉很强烈..但是范围实在是太大了.并且有一种感觉就是当两颗相邻的石头之间的距离相距很远时,其中间的很大一段其实状态只是一个递推的关系,即只是传递,并没有改变一段区间的状态.并且有…
背景 小K攒足了路费来到了教主所在的宫殿门前,但是当小K要进去的时候,却发现了要与教主守护者进行一个特殊的游戏,只有取到了最大值才能进去Orz教主…… 描述 守护者拿出被划分为n个格子的一个圆环,每个格子上都有一个正整数,并且定义两个格子的距离为两个格子之间的格子数的最小值.环的圆心处固定了一个指针,一开始指向了圆环上的某一个格子,你可以取下指针所指的那个格子里的数以及与这个格子距离不大于k的格子的数,取一个数的代价即这个数的值.指针是可以转动的,每次转动可以将指针由一个格子转向其相邻的格子,且…
题目描述 多边形(Polygon)游戏是单人玩的游戏,开始的时候给定一个由N个顶点构成的多边形(图1所示的例子中,N=4),每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘法运算),所有边依次用整数1到N标识. 图1:一个多边形的图形表示 首次移动(first move),允许将某条边删除: 接下来的每次顺序移动(subsequentmoves),包括下面步骤: 1.选出一条边E,以及由E联接的顶点V1和V2: 2.用一个新的顶点,取代边E及其所联接的两个顶点V1和V…
A - Cake 题目大意:给你一个n个顶点(n<=100)的多边形和每两个点连边的消耗,让你求把这个多边形全部切成三角形所需要的最小消耗,如果这个多边形为凹多边形则输出无解. 思路:先求一个凸包,看凸包里的点是不是n个,不是n个输出无解,求完凸包之后,点都是按顺时针排的,我们用dp[ i ][ j ]表示,i 到 j 的折线和 i 连 j的直线围成的多边形 的最小消耗. 状态转移方程:dp[ i ][ j ]=min( dp[ i ][ j ] , dp[ i ][ k ]+dp[ k ][…
1719: [Usaco2006 Jan] Roping the Field 麦田巨画 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 82  Solved: 26[Submit][Status][Discuss] Description Farmer John is quite the nature artist: he often constructs large works of art on his farm. Today, FJ wants…