답안 #927297

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
927297 2024-02-14T16:27:18 Z andrei_boaca Jail (JOI22_jail) C++17
5 / 100
5000 ms 31800 KB
#include <bits/stdc++.h>

using namespace std;
typedef pair<int,int> pii;
int t,n,m,A[120005],B[120005],in[120005],out[120005],timp,par[120005],niv[1200005],dp[21][120005];
vector<int> muchii[120005];
vector<int> edges[120005];
map<pii,int> f;
bool isancestor(int a,int b)
{
    return in[a]<=in[b]&&out[a]>=out[b];
}
int LCA(int a,int b)
{
    if(niv[a]>niv[b])
        swap(a,b);
    if(isancestor(a,b))
        return a;
    for(int i=18;i>=0;i--)
        if(dp[i][a]!=0&&!isancestor(dp[i][a],b))
            a=dp[i][a];
    return par[a];
}
int dist(int a,int b)
{
    int lca=LCA(a,b);
    return niv[a]+niv[b]-2*niv[lca];
}
void dfs(int nod)
{
    timp++;
    in[nod]=timp;
    dp[0][nod]=par[nod];
    for(int i=1;i<=18;i++)
        dp[i][nod]=dp[i-1][dp[i-1][nod]];
    for(int i:muchii[nod])
        if(i!=par[nod])
        {
            par[i]=nod;
            niv[i]=niv[nod]+1;
            dfs(i);
        }
    out[nod]=timp;
}
bool onchain(int x,int a,int b)
{
    return dist(a,x)+dist(x,b)==dist(a,b);
}
int grad[120005];
void solve()
{
    cin>>n;
    timp=0;
    for(int i=1;i<=n;i++)
        muchii[i].clear();
    for(int i=1;i<n;i++)
    {
        int a,b;
        cin>>a>>b;
        muchii[a].push_back(b);
        muchii[b].push_back(a);
    }
    dfs(1);
    cin>>m;
    for(int i=1;i<=m;i++)
    {
        cin>>A[i]>>B[i];
        edges[i].clear();
        grad[i]=0;
    }
    f.clear();
    for(int i=1;i<=m;i++)
        for(int j=1;j<=m;j++)
            if(i!=j)
            {
                if(onchain(A[j],A[i],B[i]))
                {
                    edges[j].push_back(i);
                    grad[i]++;
                }
                if(onchain(B[j],A[i],B[i])&&onchain(B[i],A[j],B[j]))
                {
                    cout<<"No\n";
                    return;
                }
                if(onchain(A[j],A[i],B[i])&&onchain(B[j],A[i],B[i]))
                {
                    cout<<"No\n";
                    return;
                }
                /*if(dist(A[i],B[j])+dist(B[j],B[i])==dist(A[i],B[i]))
                {
                    edges[i].push_back(j);
                    grad[j]++;
                }*/
            }
    queue<int> coada;
    int cnt=0;
    for(int i=1;i<=m;i++)
        if(grad[i]==0)
            coada.push(i);
    while(!coada.empty())
    {
        int nod=coada.front();
        coada.pop();
        cnt++;
        for(int i:edges[nod])
        {
            grad[i]--;
            if(grad[i]==0)
                coada.push(i);
        }
    }
    if(cnt==m)
        cout<<"Yes\n";
    else
        cout<<"No\n";
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>t;
    while(t--)
        solve();
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18776 KB Output is correct
2 Correct 3 ms 18776 KB Output is correct
3 Correct 3 ms 18780 KB Output is correct
4 Correct 9 ms 18780 KB Output is correct
5 Correct 24 ms 18776 KB Output is correct
6 Correct 3 ms 18780 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 6 ms 18780 KB Output is correct
9 Correct 58 ms 20076 KB Output is correct
10 Correct 40 ms 30668 KB Output is correct
11 Correct 6 ms 18776 KB Output is correct
12 Correct 26 ms 18780 KB Output is correct
13 Execution timed out 5018 ms 31800 KB Time limit exceeded
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18780 KB Output is correct
2 Correct 3 ms 18780 KB Output is correct
3 Correct 3 ms 18780 KB Output is correct
4 Correct 3 ms 18780 KB Output is correct
5 Correct 3 ms 18780 KB Output is correct
6 Correct 4 ms 18960 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 3 ms 18780 KB Output is correct
9 Correct 4 ms 18780 KB Output is correct
10 Correct 4 ms 18776 KB Output is correct
11 Correct 4 ms 18780 KB Output is correct
12 Correct 3 ms 18780 KB Output is correct
13 Correct 5 ms 18780 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18780 KB Output is correct
2 Correct 3 ms 18780 KB Output is correct
3 Correct 3 ms 18780 KB Output is correct
4 Correct 3 ms 18780 KB Output is correct
5 Correct 3 ms 18780 KB Output is correct
6 Correct 4 ms 18960 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 3 ms 18780 KB Output is correct
9 Correct 4 ms 18780 KB Output is correct
10 Correct 4 ms 18776 KB Output is correct
11 Correct 4 ms 18780 KB Output is correct
12 Correct 3 ms 18780 KB Output is correct
13 Correct 5 ms 18780 KB Output is correct
14 Correct 3 ms 18780 KB Output is correct
15 Correct 3 ms 18780 KB Output is correct
16 Correct 3 ms 18780 KB Output is correct
17 Correct 6 ms 19028 KB Output is correct
18 Correct 4 ms 18780 KB Output is correct
19 Correct 3 ms 18780 KB Output is correct
20 Correct 4 ms 18780 KB Output is correct
21 Correct 4 ms 18780 KB Output is correct
22 Correct 4 ms 18780 KB Output is correct
23 Correct 3 ms 18780 KB Output is correct
24 Incorrect 3 ms 18780 KB Output isn't correct
25 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18780 KB Output is correct
2 Correct 3 ms 18780 KB Output is correct
3 Correct 3 ms 18780 KB Output is correct
4 Correct 3 ms 18780 KB Output is correct
5 Correct 3 ms 18780 KB Output is correct
6 Correct 4 ms 18960 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 3 ms 18780 KB Output is correct
9 Correct 4 ms 18780 KB Output is correct
10 Correct 4 ms 18776 KB Output is correct
11 Correct 4 ms 18780 KB Output is correct
12 Correct 3 ms 18780 KB Output is correct
13 Correct 5 ms 18780 KB Output is correct
14 Correct 3 ms 18780 KB Output is correct
15 Correct 3 ms 18780 KB Output is correct
16 Correct 3 ms 18780 KB Output is correct
17 Correct 6 ms 19028 KB Output is correct
18 Correct 4 ms 18780 KB Output is correct
19 Correct 3 ms 18780 KB Output is correct
20 Correct 4 ms 18780 KB Output is correct
21 Correct 4 ms 18780 KB Output is correct
22 Correct 4 ms 18780 KB Output is correct
23 Correct 3 ms 18780 KB Output is correct
24 Incorrect 3 ms 18780 KB Output isn't correct
25 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18780 KB Output is correct
2 Correct 3 ms 18780 KB Output is correct
3 Correct 3 ms 18780 KB Output is correct
4 Correct 3 ms 18780 KB Output is correct
5 Correct 3 ms 18780 KB Output is correct
6 Correct 4 ms 18960 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 3 ms 18780 KB Output is correct
9 Correct 4 ms 18780 KB Output is correct
10 Correct 4 ms 18776 KB Output is correct
11 Correct 4 ms 18780 KB Output is correct
12 Correct 3 ms 18780 KB Output is correct
13 Correct 5 ms 18780 KB Output is correct
14 Correct 3 ms 18780 KB Output is correct
15 Correct 3 ms 18780 KB Output is correct
16 Correct 3 ms 18780 KB Output is correct
17 Correct 6 ms 19028 KB Output is correct
18 Correct 4 ms 18780 KB Output is correct
19 Correct 3 ms 18780 KB Output is correct
20 Correct 4 ms 18780 KB Output is correct
21 Correct 4 ms 18780 KB Output is correct
22 Correct 4 ms 18780 KB Output is correct
23 Correct 3 ms 18780 KB Output is correct
24 Incorrect 3 ms 18780 KB Output isn't correct
25 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18776 KB Output is correct
2 Correct 3 ms 18776 KB Output is correct
3 Correct 3 ms 18776 KB Output is correct
4 Correct 3 ms 18780 KB Output is correct
5 Correct 6 ms 18780 KB Output is correct
6 Correct 3 ms 18776 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 3 ms 18780 KB Output is correct
9 Correct 3 ms 18780 KB Output is correct
10 Incorrect 3 ms 18780 KB Output isn't correct
11 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 18776 KB Output is correct
2 Correct 3 ms 18776 KB Output is correct
3 Correct 3 ms 18780 KB Output is correct
4 Correct 9 ms 18780 KB Output is correct
5 Correct 24 ms 18776 KB Output is correct
6 Correct 3 ms 18780 KB Output is correct
7 Correct 3 ms 18780 KB Output is correct
8 Correct 6 ms 18780 KB Output is correct
9 Correct 58 ms 20076 KB Output is correct
10 Correct 40 ms 30668 KB Output is correct
11 Correct 6 ms 18776 KB Output is correct
12 Correct 26 ms 18780 KB Output is correct
13 Execution timed out 5018 ms 31800 KB Time limit exceeded
14 Halted 0 ms 0 KB -