dp开longlong, 仍60分WA求救
查看原帖
dp开longlong, 仍60分WA求救
1292936
caicaicainiao楼主2025/1/15 16:36
#include<iostream>
#include<vector>
using namespace std;
int n,m,a,b;
long long  f[1000][1000]={0};
int t[9][3];

void work(int n,int m)
{
	
	for(int i=0;i<=20;i++)
	{
		f[i][0]=1;
		f[0][i]=1;
	}
for(int i=0;i<9;i++)
{
	if(t[i][0]>=0&&t[i][1]>=0)
	f[t[i][0]][t[i][1]]=0;
}
	for(int i=0;i<=n;i++)
	{
		for(int j=0;j<=m;j++)
		{
			if(i==0||j==0)
			continue;
			else
			{
				int flag=1;
				for(int k=0;k<9;k++)
				{
					if(i==t[k][0]&&j==t[k][1])
					{
						flag=0;
						f[i][j]=0;
						break;
					}
				}
				if(flag)
				f[i][j]=f[i-1][j]+f[i][j-1];
			}
		}
	}
	/*for(int i=0;i<=n;i++)
	{
		for(int j=0;j<=m;j++)
		{
			printf("%lld ",f[i][j]);
		}
		printf("\n");
	}*/
	printf("%lld",f[n][m]);
}
int main()
{
	
	scanf("%d %d %d %d",&n,&m,&a,&b);
	int ac=0;
/*	if(n>m)
	ac=n;
	else
	ac=m;*/
	t[0][0]=a;t[0][1]=b;t[1][0]=a+2;t[1][1]=b+1;
	t[2][0]=a+1;t[2][1]=b+2;t[3][0]=a-1;t[3][1]=b+2;
	t[4][0]=a-2;t[4][1]=b+1;t[5][0]=a-2;t[5][1]=b-1;
	t[6][0]=a-1;t[6][1]=b-2;t[7][0]=a+1;t[7][1]=b-2;
	t[8][0]=a+2;t[8][1]=b-1;
	work(n,m);


	return 0;
 }
2025/1/15 16:36
加载中...