c_cpp给定Ñ个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且Ñ条边按照顺时针依次编号为1〜n的给出。了一个n=4个顶点的多边形。游(代码

author author     2023-01-09     243

关键词:

//3d6 多边形游戏
#include "stdafx.h"
#include <iostream> 
using namespace std; 
 
#define NMAX 100
int N,m[NMAX+1][NMAX+1][2],v[NMAX+1]; 
char op[NMAX+1];
 
void MinMax(int n,int i,int s,int j,int &minf,int &maxf);
int PloyMax(int n,int& p);
 
int main() 
  
	int p;
	cout<<"请输入多边形顶点数:"<<endl;
	cin>>N;
	for(int i=1; i<=N; i++)
	
		cout<<"请输入多边形顶点"<<i<<"数值:"<<endl;
		cin>>v[i];  
		m[i][1][0]=v[i];  
		m[i][1][1]=v[i]; 
		cout<<"请输入多边形边"<<i<<"运算符:"<<endl;
		cin>>op[i];   
	 
	cout<<"多边形游戏首次删除第"<<p<<"条边,结果为:"<<PloyMax(N,p)<<endl; 
	return 0;

 
void MinMax(int n,int i,int s,int j,int &minf,int &maxf)
 
	int e[5];
	int a=m[i][s][0],b=m[i][s][1];
	int r=(i+s-1)%n+1;//多边形的实际顶点编号
	int c=m[r][j-s][0],d=m[r][j-s][1];
 
	if(op[r-1]=='+')
	   
		minf=a+c;
		maxf=b+d;
	 
	else
	   
		e[1]=a*c;
		e[2]=a*d;
		e[3]=b*c; 
		e[4]=d*b;  
		minf=e[1];  
		maxf=e[1]; 
 
		for(int r=2;r<N;r++) 
		   
			if(minf>e[r])minf=e[r];
			if(maxf<e[r])maxf=e[r];
		
	

 
int PloyMax(int n,int& p)
 
	int minf,maxf;
	for(int j=2;j<=n;j++) //迭代链的长度
	
		for(int i=1;i<=n;i++)//迭代首次删掉第i条边
		
			for(int s=1 ;s<j;s++) //迭代断开位置
			    
				MinMax(n,i,s,j,minf,maxf);
				if(m[i][j][0]>minf) m[i][j][0]=minf; 
				if(m[i][j][1]<maxf) m[i][j][1]=maxf;
			  
		
	
 
	int temp=m[1][n][1]; 
	p=1;
 
	for(int i=2 ;i<=n; i++)  
	    
		if(temp<m[i][n][1]) 
		
			temp=m[i][n][1];
			p=i;
		
	                  
	return temp;
 

hzoi2018.2.11多边形区间dp

给定一个由N个顶点构成的多边形,每个顶点被赋予一个整数值,而每条边则被赋予一个符号:+(加法运算)或者*(乘法运算),所有边依次用整数1到N标识。一个多边形的图形表示首次移动,允许将某条边删除;接下来的每次顺序移... 查看详情

查找给定多边形 w.r.t 的两个“边界”顶点。已知(光源)点

】查找给定多边形w.r.t的两个“边界”顶点。已知(光源)点【英文标题】:Findingtwo"bounding"verticesofagivenpolygonw.r.t.aknown(lightsource)point【发布时间】:2021-12-0803:02:55【问题描述】:上下文:我提前为这个问题的不严谨性表... 查看详情

纹理顶点数组中的每个多边形 - OpenGL

】纹理顶点数组中的每个多边形-OpenGL【英文标题】:Texturingeachpolygoninvertexarray-OpenGL【发布时间】:2011-10-2201:34:21【问题描述】:我正在尝试让我的渲染功能正常工作。我正在使用顶点数组。这是我的顶点结构。structVertexfloatx,y,z... 查看详情

凸多边形的划分libreoj-10149(代码片段)

给定一个具有 NN 个顶点的凸多边形,将顶点从 11 至 NN 标号,每个顶点的权值都是一个正整数。将这个凸多边形划分成 N−2N−2 个互不相交的三角形,试求这些三角形顶点的权值乘积和至少为... 查看详情

多边形游戏(dp)

Description多边形游戏是一个单人玩的游戏,开始时有一个由n个顶点构成的多边形。每个顶点被赋予一个整数值,每条边被赋予一个运算符"+"或"*"。所有边依次用整数从1到n编号。游戏第1步,将一条边删除。随后的n-1步按以下方式... 查看详情

凸多边形的三角剖分(代码片段)

题目描述给定一具有N个顶点(从1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?输入格式第一行顶点数N(N<50)。第二行N个顶点... 查看详情

[poj1179]polygon(代码片段)

http://poj.org/problem?id=1179多边形是一个玩家在一个有n个顶点的多边形上的游戏,如图所示,其中n=4。每个顶点用整数标记,每个边用符号+(加)或符号*(乘积)标记。 第一步,删除其中一条边。随后每一步:选择一条边连... 查看详情

查找多边形之间的共享顶点

】查找多边形之间的共享顶点【英文标题】:Findingsharedverticesamongpolygons【发布时间】:2009-04-1022:06:28【问题描述】:我很快就会遇到一个有趣的问题,我已经开始考虑算法。我想得越多,我就越害怕,因为我认为它会可怕地扩... 查看详情

ioi1998polygon(代码片段)

题意翻译题目可能有些许修改,但大意一致多边形是一个玩家在一个有n个顶点的多边形上的游戏,如图所示,其中n=4。每个顶点用整数标记,每个边用符号+(加)或符号*(乘积)标记。第一步,删除其中一条边。随后每一步... 查看详情

区间dp之凸多边形的三角剖分(代码片段)

题目给定一具有N个顶点(从1到N编号)的凸多边形,每个顶点的权均已知。问如何把这个凸多边形划分成N-2个互不相交的三角形,使得这些三角形顶点的权的乘积之和最小?输入第一行顶点数N(N<50)。第二行N个顶点(从1到N... 查看详情

确定给定点是不是在多边形内

】确定给定点是不是在多边形内【英文标题】:determineifagivenpointisinsidethepolygon确定给定点是否在多边形内【发布时间】:2011-03-0718:59:29【问题描述】:给定一个凸多边形作为n个顶点的逆时针列表,给出O(lgn)算法来确定给定点是... 查看详情

使用增强几何缓冲区缩放多边形时的冗余顶点

】使用增强几何缓冲区缩放多边形时的冗余顶点【英文标题】:Redundantverticeswhenscalingpolygonwithboostgeometrybuffer【发布时间】:2018-08-2217:20:59【问题描述】:我正在使用boostgeometry来管理一些多边形,我需要将它们扩大和缩小给定的... 查看详情

逐顶点光照逐像素光照差异对比

...角形区域中其它像素的颜色。优点:1.当处理高精度多边形模型时,由于每个多边形所覆盖的区域很小,因此插值之后每个像素的误差也很小,所以逐顶点光照可以工作的很好;2.如果三角形所覆盖的像素数量... 查看详情

如何判断多边形顶点的顺序是顺时针还是逆时针?

】如何判断多边形顶点的顺序是顺时针还是逆时针?【英文标题】:Howtojudgethatthevertices\'sorderofpolygonisclockwiseorcounterclockwise?【发布时间】:2017-12-0310:52:51【问题描述】:具体问题是:n行,每行包含两个整数。第i行包含xi, yi-多... 查看详情

已知空间三角形,四边形,或者五边形的顶点的三维坐标,如何遍历多边形内部的每个点。

参考技术A你的意思是,知道空间多边形的定点,如何遍历与每个定点有关系的内部定点,楼主你可以在纸上画一个三维的多边形,标注每个定点(包含内外),用C++编译一份广度或深度优先的遍历代码,调试好之后在cmd里面输... 查看详情

如何绘制一个图,其中每个顶点都是给定大小的矩形,但边可以是任意长度?

】如何绘制一个图,其中每个顶点都是给定大小的矩形,但边可以是任意长度?【英文标题】:Howcanyouplotagraphwhereeachverticesisarectanglewithgivensizebutedgescanbeanylength?【发布时间】:2021-11-1023:37:27【问题描述】:这个问题是我正在尝试... 查看详情

poj1179polygon(代码片段)

描述Polygon是一个玩家的游戏,它从具有N个顶点的多边形开始,如图1所示,其中N=4。每个顶点用整数标记,每个边用标记+(加法)或符号*(产品)标记。边缘编号从1到N. 在第一步中,其中一条边被移除。后续移动包括以下... 查看详情

到给定顶点的所有最短路径

】到给定顶点的所有最短路径【英文标题】:AllShortestPathsToAGivenVertex【发布时间】:2013-05-1419:44:30【问题描述】:给定一个有向图G=(V,E)和一个权重函数w:E->R+(只有图中边的正权重),我需要找到从V中的每个顶点v到的所有最... 查看详情