首页 > 编程语言 > 详细

飞机轰炸 end 不过存在数组的问题

时间:2017-01-10 11:59:10      阅读:262      评论:0      收藏:0      [点我收藏+]
#include <iostream>
int data[8][5]={0};
int b[8][5]={0};
int m,n;
int dy[3]={0,-1,1};
int k=0;
int mon;
int max;
void dfs(int x,int y,int step)
{   
	if(step==n)
	{ 
		//printf("%d",mon);
		if(max<mon)
			max=mon;
		return;
	}
	 for(int i=0;i<3;i++)
	 {   
		 int nx=x-1;
		 int ny=y+dy[i];
		 if(nx>=0&&nx<n&&ny>=0&&ny<5)
		 {   
			 if(data[nx][ny]==1)
			 {
				 mon++;
			 }
			 if(data[nx][ny]==2)
			 {
				 mon--;
			 }
			 dfs(nx,ny,step+1);
			  if(data[nx][ny]==1)
			 {
				 mon--;
			 }
			 if(data[nx][ny]==2)
			 {
				 mon++;
			 }
		 }
		 
	 }
}
int main()
{       
	   freopen("input.txt","r",stdin);
       scanf("%d",&n);
	   
	 for(int i=0;i<n;i++)
		{
			for(int j=0;j<5;j++)
			{
				scanf("%d",&data[i][j]);
			}
	    }
	         
	 printf("xx\n");
	  for(int q=0;q<n;q++)
		{
			for(int j=0;j<5;j++)
			{
				b[q][j]=data[q][j];
			}
	    }	          
	        while(n-k>=5)
			{    printf("*\n");
				for(int i=0;i<n;i++)
		      {
			      for(int j=0;j<5;j++)
			      {
				     data[i][j]=b[i][j];
			       }
	           }

		     for(int i=n-k-1;i>=n-k-5;i--)
		     {
			     for(int j=0;j<5;j++)
			    {
				    if(data[i][j]==2)
					   data[i][j]=0;
			    }
		      }	
			 for(int i=0;i<n;i++)
		      {
			      for(int j=0;j<5;j++)
			      {
				     printf("%d",data[i][j]);
			       }
				  printf("\n");
	           }

		     k++;   
		     dfs(n,2,0);
			 mon=0;
			 }
			printf("%d",max);

	  } 

 

飞机轰炸 end 不过存在数组的问题

原文:http://www.cnblogs.com/dahuacarry/p/6268620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!