- 恶魔城(satanic )
80pts :(
- 2023-1-24 11:59:54 @
dfs + 二分
90pts 是我用 mt19937 套数据乱搞的((
#include "bits/stdc++.h"
using namespace std;
const int mod = 998244353, g = 3, invg = 332748118;
int f[1919][810], n;
int dfs(int hp, int t) {
if (hp <= 0) return 0;
if (t == n) return 1;
int flg = 0;
for (int i = 1; i <= n; ++i) {
if (f[t][i] != 0) {
flg |= dfs(hp * 2 + f[t][i], i);
}
}
return flg;
}
int search(int l, int r) {
int mid;
while (l < r) {
mid = (l + r) / 2;
// cout<<l<<' '<<r<<' '<<mid<<endl;
if (dfs(mid, 1)) {
r = mid;
} else {
l = mid + 1;
}
}
return l;
}
int main() {
scanf ("%d", &n);
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
scanf ("%d", &f[i][j]);
}
}
printf ("%d", search(1, 35000));
}
0 条评论
目前还没有评论...
信息
- ID
- 285
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 161
- 已通过
- 15
- 上传者