답안 #957263

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
957263 2024-04-03T10:49:46 Z ttamx 경찰관과 강도 (BOI14_coprobber) C++17
0 / 100
70 ms 35396 KB
#include "coprobber.h"
#include<bits/stdc++.h>

using namespace std;

int n,st;
vector<int> adj[MAX_N];
int vis[MAX_N][MAX_N][2];
pair<int,int> dp[MAX_N][MAX_N][2];

int solve(int x,int y,int t){
    if(x==y)return 1;
    if(vis[x][y][t]==2)return dp[x][y][t].first;
    if(vis[x][y][t]==1)return 0;
    vis[x][y][t]=1;
    if(t){
        pair<int,int> res(solve(x,y,0),x);
        for(auto v:adj[x])res=max(res,{solve(v,y,0),v});
        vis[x][y][t]=2;
        return (dp[x][y][t]=res).first;
    }else{
        int res=1;
        for(auto v:adj[y])res=min(res,solve(x,v,1));
        vis[x][y][t]=2;
        return dp[x][y][t].first=res;
    }
}

int start(int N,bool A[MAX_N][MAX_N]){
    n=N;
    for(int u=0;u<n;u++)for(int v=0;v<n;v++)if(A[u][v])adj[u].emplace_back(v);
    for(int u=0;u<n;u++){
        int res=1;
        for(int v=0;v<n;v++){
            res=min(res,solve(u,v,1));
        }
        if(res)return st=u;
    }
    return -1;
}

int nextMove(int R){
    solve(st,R,1);
    return st=dp[st][R][1].second;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 0 ms 2392 KB Output is correct
3 Correct 1 ms 2392 KB Output is correct
4 Incorrect 70 ms 35396 KB Cop can catch the robber, but start() returned -1
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2388 KB Output is correct
2 Incorrect 1 ms 2392 KB Cop can catch the robber, but start() returned -1
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 1 ms 2392 KB Output is correct
3 Correct 1 ms 2392 KB Output is correct
4 Correct 0 ms 2392 KB Output is correct
5 Incorrect 1 ms 2392 KB Cop can catch the robber, but start() returned -1
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2392 KB Output is correct
2 Correct 0 ms 2392 KB Output is correct
3 Correct 1 ms 2392 KB Output is correct
4 Incorrect 70 ms 35396 KB Cop can catch the robber, but start() returned -1
5 Halted 0 ms 0 KB -