白駿5569解答失敗


ダイナミックプログラミングを解く方法がすぐにわかりました.
そこで,n=2から規則を逐次漸進的に探し,コードを記述するために点火式を作成したが,解に失敗した.まず他の問題を解決し、実力を高め、再び挑戦しなければならない.
失敗したコードを残すために作成します.
#include <iostream>
#include <deque>
#include <vector>
#include <string>
#include <string.h>
#include <sstream>
#include <cstdlib>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <cmath>
using namespace std;

int t;
int n;
int m;
int arr[101][101];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> n >> m;

	arr[2][2] = 0;
	for (int i = 2; i < 101; i++) {
		arr[i][2] = 2 % 100000;
		arr[2][i] = 2 % 100000;
	}

	for (int i = 3; i < 101; i++) {
		//arr[i][i] = ((int)pow(2, (i - 1))) % 100000;
		arr[i][i] = arr[i - 1][i - 1] * 2 % 100000;
	}
	
	for (int i = 4; i < 101; i++) {
		arr[3][i] = arr[3][i - 1] + 1 % 100000;
		arr[i][3] = arr[i-1][3] + 1 % 100000;
	}

	for (int i = 4; i < 101; i++) {
		for (int j = 5; j < 101; j++) {
			arr[i][j] = arr[i][j-1] + arr[i - 1][j-1] % 100000;
			arr[j][i] = arr[i][j] % 100000;
		}
	}


	cout << arr[n][m] << '\n';
	return 0;
}