• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: 其他
  • 标签: 算法  

资源简介

实现多边形游戏算法,时间复杂度O(n^3),网上大多数此算法的代码有误,里面包含有测试样例。

资源截图

代码片段和文件信息

#include 
#define  SIZE  100
using namespace std;

int   m[SIZE][SIZE+1][2];
int  v[SIZE] Deleteis;
char op[SIZE];

void MinMax(int n int i int s int j int &minf int &maxf)
{
    int r;
    int a b c d;
    r = (i + s) % n;
    //初始化子链的最大和最小值
    a = m[i][s][0];  b = m[i][s][1];
    c = m[r][j-s][0]; d = m[r][j-s][1];
    
    if(op[(r-1)] == ‘+‘)
    {
        minf = a + c;
        maxf = b + d;
    }
    else
    {
        int value[4];
        value[0] = a * c;  value[1] = b * d;
        value[2] = a * d;  value[3] = b * c; 
        minf = value[0]; maxf = value[0];
        
        for(int k = 1; k < 4; k++)
        {
            if(value[k] < minf)
                minf = value[k];
            if(value[k] > maxf)
                maxf = value[k];
        }
    }
}

int PolyMax(int n)
{
    int minf maxf;
    for(int j = 2;j <= n; j++)
{
for(int i = 0;i < n; 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] == 0) 
m[i][j][0] = minf;
                if(m[i][j][1] < maxf) 
m[i][j][1] = maxf;
            }
}
    int  temp;
    temp = m[0][n][1];
    for(int p = 1; p < n; p++)
if(temp < m[p][n][1]) 
{
temp = m[p][n][1];
Deleteis = p;
}
return temp;
}
int main()
{
    int MaxGrade i;
    int n;
    Label:
    cout << “输入顶点数(大于2):“ << endl;
    while(cin >> n n > 2)
    {
cout << “输入定点和运算符:“ << endl; 
for(i = 0; i < n; i++)
{
cin >> v[i] >> op[i];
m[i][1][0] = v[i];
m[i][1][1] = v[i];        
}
MaxGrade = PolyMax(n); 
cout << “第一次删除的边是 :\n“ << Deleteis << endl;
cout << “可获得的最高分为 :\n“ << MaxGrade << endl;
cout << “\n输入顶点数(大于2):“ << endl; 
    }
    cout << “请重新输入!“ << endl;
    goto Label; 
    system(“pause“);
    return 0;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        118  2013-03-18 21:01  PolyGame(测试).txt

     文件       1982  2013-03-18 21:01  PolyGame.cpp

----------- ---------  ---------- -----  ----

                 2100                    2


评论

共有 条评论