请问为什么不开o2优化,第四个测试点是wa,开了就对
查看原帖
请问为什么不开o2优化,第四个测试点是wa,开了就对
136379
FumengTuT楼主2023/11/15 17:18
//为什么不开o2优化,第四个测试点是wa,开了就ac了,而且在自己电脑上测试第四组数据的时候答案是对的
#include<iostream>
#include<vector>
#include<cstring>
typedef long long ll;
using namespace std;

void cannot_pass(ll (&a)[30][30], ll hi, ll hj)
{
    a[hi - 1][hj - 2] = 0;
    a[hi - 1][hj + 2] = 0;
    a[hi + 1][hj - 2] = 0;
    a[hi + 1][hj + 2] = 0;
    a[hi - 2][hj - 1] = 0;
    a[hi - 2][hj + 1] = 0;
    a[hi + 2][hj - 1] = 0;
    a[hi + 2][hj + 1] = 0;
}

void do_dp(ll (&a)[30][30], ll (&dp)[30][30], ll bi, ll bj)
{
	for(ll i = 0; i <= bi; i++)
		if(a[i][0] != 0) dp[i][0] = 1;
		else break;
	for(ll j = 0; j <= bj; j++)
		if(a[0][j] != 0) dp[0][j] = 1;
		else break;
	for(ll i = 1; i <= bi; i++)
	{
		for(ll j = 1; j <= bj; j++)
		{
			if(a[i][j] == 0) dp[i][j] = 0;
			else dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
		}
	}
	cout << dp[bi][bj];
}
int main()
{
	long long a[30][30];
	memset(a, 1, sizeof(a));
	long long Bi, Bj, hi, hj, dp[30][30] = {{0}};
	cin >> Bi >> Bj >> hi >> hj;
	a[hi][hj] = 0;
	cannot_pass(a, hi, hj);
	do_dp(a, dp, Bi, Bj);
	
	return 0;
}
2023/11/15 17:18
加载中...