社区讨论

求助大佬,递归,40分,TLE

P1002[NOIP 2002 普及组] 过河卒参与者 4已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo30vlvz
此快照首次捕获于
2023/10/23 22:58
2 年前
此快照最后确认于
2023/10/23 22:58
2 年前
查看原帖
废话不说,看代码
CPP
#include<iostream>
using namespace std;
int bn,bm,hn[10],hm[10],n;
void f(int an,int am)
{
	bool a=1,b=1;
	if(an==bn&&am==bm)
	n++;
	for(int i=1;i<=5;i++)
	{ 
		int j[2];
		if(hm[i]-hm[1]>0)
		{
		j[0]=3-(hm[i]-hm[1]);
		j[1]=-(3-(hm[i]-hm[1]));
		}
		if(hm[i]-hm[1]<0)
		{
		j[0]=3+(hm[i]-hm[1]);
		j[1]=-(3+(hm[i]-hm[1]));
		}
		if(hm[i]-hm[1]==0)
		{
		j[0]=0;
		j[1]=0;
		}
		if(am==hm[i]&&an+1==hn[1]+j[0]||an+1>bn)
			a=0;
		if(am==hm[i]&&an+1==hn[1]+j[1]||an+1>bn)
			a=0;
		if(am+1==hm[1]+j[0]&&an==hn[i]||am+1>bm)
			b=0;
		if(am+1==hm[1]+j[1]&&an==hn[i]||am+1>bm)
			b=0;
			} 
	if(a==1)
		f(an+1,am);
	if(b==1)
		f(an,am+1);
	
}
int main()
{
	int an=0,am=0;
	cin>>bn>>bm>>hn[1]>>hm[1];
	hn[2]=hn[1]+1;
	hn[3]=hn[1]+2;
	hn[4]=hn[1]-1;
	hn[5]=hn[1]-2;
	hm[2]=hm[1]+1;
	hm[3]=hm[1]+2;
	hm[4]=hm[1]-1;
	hm[5]=hm[1]-2;
	f(an,am);
	cout<<n;
	return 0;
}
~~一定用pd吗,卡好久了,~~大佬帮帮忙

回复

6 条回复,欢迎继续交流。

正在加载回复...