求调,60pts
查看原帖
求调,60pts
1334925
The_foolishest_OIer楼主2024/7/22 17:54

#3#4 WA

#include <bits/stdc++.h>
using namespace std;
long long a[50][50],ex,ey,mx,my,flag;
const int dx[10] = {0,-1,1,-2,-2,2,2,-1,1};
const int dy[10] = {0,2,2,1,-1,1,-1,-2,-2};
int main(){
    cin >> ex >> ey >> mx >> my;
    for (int i = 2 ; i <= (ex + 2) ; i++){
    	flag = 1;
    	for (int j = 0 ; j < 9 ; j++){
    		if (mx + dx[j] + 2 == i && my + dy[j] + 2 == 2){
    			flag = 0;
    			break;
			}
		}
		if (flag){
            a[i][2] = 1;
        }
	}
	for (int i = 2 ; i <= (ey + 2) ; i++){
		flag = 1;
    	for (int j = 0 ; j < 9 ; j++){
    		if (mx + dx[j] + 2 == 2 && my + dy[j] + 2 == i){
    			flag = 0;
    			break;
			}
		}
		if (flag){
            a[2][i] = 1;
        }
	}
    for (int i = 3 ; i <= (ex + 2) ; i++){
        for (int j = 3 ; j <= (ey + 2) ; j++){
        	flag = 1;
        	for (int k = 0 ; k < 9 ; k++){
        		if (mx + dx[k] + 2 == i && my + dy[k] + 2 == j){
        			flag = 0;
        			break;
				}
			}
            if (flag){
                a[i][j] = a[i - 1][j] + a[i][j - 1];
            }
        }
    }
    cout << a[ex + 2][ey + 2];
    return 0;
}
2024/7/22 17:54
加载中...