请问是算法错了还是代码什么的错了 头痛
查看原帖
请问是算法错了还是代码什么的错了 头痛
1394909
Criz楼主2024/7/13 16:21
#include<iostream>
  
using namespace std;
  
int main()
  
{
  
	int n,m,Xc,Yc,loc[99999];
  
	bool lc[99999];
  
	cin>>n>>m>>Xc>>Yc;
  
	loc[0]=1;
  
		for(int i=0;i<=n;i++)
                             
	{
                             
		for(int j=0;j<=m;j++)
  
		{
  
			lc[i*10+j]=true;
  
		}
  
	}
  
	lc[Xc*10+Yc]=lc[(Xc-2)*10+(Yc-1)]=lc[(Xc-1)*10+(Yc-2)]=lc[(Xc+1)*10+(Yc-2)]=lc[(Xc+2)*10+(Yc-1)]=lc[(Xc+2)*10+(Yc+1)]=lc[(Xc+1)*10+(Yc+2)]=lc[(Xc-1)*10+(Yc+2)]=lc[(Xc-2)*10+(Yc+1)]=false;
  
	for(int i=0;i<=n;i++)
                         
	{
                         
		if(lc[(i+1)*10]!=false) loc[(i+1)*10]=1;
                         
			else loc[(i+1)*10]=0;
                         
	}
                         
	for(int i=0;i<=m;i++)
  
	{
  
		if(lc[i+1]!=false) loc[i+1]=1;
  
			else loc[i+1]=0;
  
	}
  
	for(int i=1;i<=n;i++)
                         
	{
                         
		for(int j=1;j<=m;j++)
  
		{
  
			if(lc[i*10+j]!=false) 
  loc[i*10+j]=loc[(i-1)*10+j]+loc[i*10+j-1];
  
		}
  
	}
  
  /*	for(int i=0;i<=n;i++)
  
	{
    
		for(int j=0;j<=m;j++)
        
		{
        
			cout<<loc[i*10+j]<<"  ";
            
		}
        
		cout<<endl;
        
	}
    
	 */ //这是输出所有点的路径数 
  
	cout<<loc[n*10+m];
  
	return 0;
  
}
 ``` ```
2024/7/13 16:21
加载中...