链接:K - Stones
博弈论DP
结论
- 能一步到达必输态的是必胜态
- 不能一步到达必输态的是必输态
思路
- 首先由题意
d
p
[
0
]
dp[0]
dp[0] 是必输态
- 暴力
1
e
5
1e5
1e5 由结论推出状态
#include <bits/stdc++.h>
using ll = long long;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int n, k;
std::cin >> n >> k;
std::vector<int> a(n + 1);
for (int i = 1; i <= n; ++i) {
std::cin >> a[i];
}
std::vector<bool> dp(1e5 + 1);
for (int i = 1; i <= 1e5; ++i) {
for (int j = 1; j <= n; ++j) {
dp[i] = dp[i] bitor (i - a[j] >= 0 and not dp[i - a[j]]);
}
}
std::cout << (dp[k] ? "First" : "Second");
return 0;
}