提出 #4314570


ソースコード 拡げる

#include "iostream"
#include "climits"
#include "list"
#include "queue"
#include "stack"
#include "set"
#include "functional"
#include "algorithm"
#include "string"
#include "map"
#include "unordered_map"
#include "unordered_set"
#include "iomanip"
#include "cmath"
#include "random"
#include "bitset"
#include "cstdio"
#include "numeric"
#include "cassert"

using namespace std;

const long long int MOD = 1000000007;
//const int MOD = 998244353;

long long int N, M, K, H, W, L, R;
//int N, M, K, H, W, L, R


int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	cin >> N >> K;
	vector<vector<long long int>>dp(N + 1, vector<long long int>(N + 1));
	vector<long long int>by(N + 1,1);
	for (int i = 1; i <= N; i++) {
		by[i] = by[i - 1] * 2;
		by[i] %= MOD;
	}
	dp[0][0] = 1;
	for (int i = 1; i <= N; i++) {
		for (int j = i; j < min(N + 1, i + K); j++) {
			dp[i][j] = dp[i - 1][j];
		}
		if (i + K <= N) {
			for (int k = i - 1; k < i + K; k++) {
				dp[i][i + K] += dp[i - 1][k] * by[i + K - i - K];
				dp[i][i + K] %= MOD;
			}
			for (int j = i + K + 1; j <= N; j++) {
				dp[i][j] = dp[i][j - 1] * 2;
				dp[i][j] %= MOD;
				dp[i][j] += dp[i - 1][j - 1] * by[j - i - K];
				dp[i][j] %= MOD;
			}
		}
		for (int j = i + K; j <= N; j++) {
			dp[i][j] += dp[i - 1][j] * by[j - i - K + 1];
			dp[i][j] %= MOD;
		}
	}
	cout << dp.back().back() << endl;
	return 0;
}

提出情報

提出日時
問題 E - Erasure
ユーザ olphe
言語 C++14 (GCC 5.4.1)
得点 700
コード長 1441 Byte
結果 AC
実行時間 246 ms
メモリ 195840 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 700 / 700
結果
AC × 3
AC × 14
セット名 テストケース
Sample sample-01.txt, sample-02.txt, sample-03.txt
All 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, sample-01.txt, sample-02.txt, sample-03.txt
ケース名 結果 実行時間 メモリ
01-01.txt AC 1 ms 256 KiB
01-02.txt AC 70 ms 54784 KiB
01-03.txt AC 16 ms 12288 KiB
01-04.txt AC 146 ms 117760 KiB
01-05.txt AC 105 ms 116096 KiB
01-06.txt AC 104 ms 182912 KiB
01-07.txt AC 246 ms 195840 KiB
01-08.txt AC 244 ms 195840 KiB
01-09.txt AC 229 ms 195840 KiB
01-10.txt AC 221 ms 195840 KiB
01-11.txt AC 110 ms 195840 KiB
sample-01.txt AC 1 ms 256 KiB
sample-02.txt AC 1 ms 256 KiB
sample-03.txt AC 241 ms 195840 KiB