답안 #667628

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
667628 2022-12-01T20:13:43 Z berr Star Trek (CEOI20_startrek) C++17
0 / 100
3 ms 5076 KB
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+37;
vector<int> adj[N], adj2[N];
int huh, huuh, mod=1e9+7;

int mul(int x, int y){
    return (x*y)%mod;
}

int poww(int x, int y)
{
    if(y==0) return 1;
    int tmp=poww(x, y/2);

    if(y%2) return mul(tmp, mul(tmp, x));
    return mul(tmp, tmp); 
}

int dfs2(int v, int p, int d)
{
    int f=1;

    if(d%2==0) f=0;

    int count=0, val=0;

    for(auto i: adj2[v])
    {
        if(i==p) continue;

        if(dfs2(i, v, d+1))
        {
         
            if(d%2==0){
                f=1;
            }
        }
        else
        {
            if(d%2) f=0;
        }
    }




    return f;
}


int dfs(int v, int p, int d)
{
    int f=1;

    if(d%2==0) f=0;

    int count=0, val=0;

    for(auto i: adj[v])
    {
        if(i==p) continue;

        if(dfs(i, v, d+1))
        {
         
            if(d%2==0){
                f=1;
            }
        }
        else
        {
            if(d%2) f=0;
        }
    }

    if(huh==v)
    {   
        if(dfs2(huuh, 0, d+1)) 
        {
            if(d%2==0) f=1;
        }
        else
        {
            if(d%2) f=0;
        }
    }

    return f;
}


signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int n, d; cin>>n>>d;


    for(int i=0; i<n-1; i++){
        int x, y; cin>>x>>y;

        adj[x].push_back(y);
        adj[y].push_back(x);

        adj2[x].push_back(y);
        adj2[y].push_back(x);
    }

    int ans=0;

    /*if(n<=1e4)
    {
        for(int i=1; i<=n; i++)
        {
            for(int l=1; l<=n; l++)
            {
                huh=i;
                huuh=l;
                if(dfs(1, 0, 0)) ans++, cout<<i<<" "<<l<<"\n";
            }
        }
        cout<<ans;

    }

    else*/
    {
        cout<<poww(4, d);
    }

}

Compilation message

startrek.cpp: In function 'int dfs2(int, int, int)':
startrek.cpp:26:9: warning: unused variable 'count' [-Wunused-variable]
   26 |     int count=0, val=0;
      |         ^~~~~
startrek.cpp:26:18: warning: unused variable 'val' [-Wunused-variable]
   26 |     int count=0, val=0;
      |                  ^~~
startrek.cpp: In function 'int dfs(int, int, int)':
startrek.cpp:58:9: warning: unused variable 'count' [-Wunused-variable]
   58 |     int count=0, val=0;
      |         ^~~~~
startrek.cpp:58:18: warning: unused variable 'val' [-Wunused-variable]
   58 |     int count=0, val=0;
      |                  ^~~
startrek.cpp: In function 'int main()':
startrek.cpp:111:9: warning: unused variable 'ans' [-Wunused-variable]
  111 |     int ans=0;
      |         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Incorrect 3 ms 5076 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 4948 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Incorrect 3 ms 5076 KB Output isn't correct
3 Halted 0 ms 0 KB -