算法游戏实例.rar

  • PUDN用户
    了解作者
  • C++
    开发工具
  • 2KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 56
    下载次数
  • 2005-09-23 12:57
    上传日期
这里面有几个算法游戏实例,包括多边形游戏,装载问题, 单源路径等,都是比较经典的算法
算法游戏实例.rar
  • 符号三角形问题.CPP
    625B
  • www.pudn.com.txt
    218B
  • 多边形游戏.cpp
    964B
  • 活动安排问题.CPP
    490B
  • 单源最短路径.CPP
    688B
内容介绍
#include "iostream.h" int m[5][4][2],v[5]; char op[5]; int ploy_max(int); void main() {for(int i=1;i<5;i++) {cin>>v[i]; m[i][1][0]=v[i]; m[i][1][1]=v[i];} for(i=1;i<5;i++) cin>>op[i]; cout<<endl; cout<<ploy_max(4)<<endl; } void MIN_MAX(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], r=(i+s-1)%n+1, c=m[r][j-s][0], d=m[r][j-s][1]; if(op[r]=='+'){ 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<5;r++){ if(minf>e[r])minf=e[r]; if(maxf<e[r])maxf=e[r];} }} int ploy_max(int n) {int minf,maxf; for(int j=2;j<=n;j++) for(int i=1;i<=n;i++) for(int s=1 ;s<j;s++) {MIN_MAX(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]; for(int i=2 ;i<=n;i++) if(temp<m[i][n][1])temp=m[i][n][1]; return temp;} //输入 -7 4 2 5<回车> //再输入++**<回车>
评论
    相关推荐