AtCoder Beginner Contest 239

A

#include <bits/stdc++.h>
using namespace std;
int main() {
    int x;
    scanf("%d", &x);
    printf("%.10lf\n", sqrt((12800000 + x)) * sqrt(x));
    return 0;
}

B

#include <bits/stdc++.h>
using namespace std;
int main() {
    long long x;
    scanf("%lld", &x);
    if (x < 0)  {
        x *= -1;
        if (x % 10 == 0)    printf("%lld\n", x / 10 * -1);
        else printf("%lld\n", (x / 10 + 1) * -1);
    }
    else printf("%lld\n", x / 10);
    return 0;
}

C

#include <bits/stdc++.h>
using namespace std;
int x, y, x2, y2;
int dx[] = {1, 2, 2, 1, -1, -2, -2, -1};
int dy[] = {2, 1, -1, -2, -2, -1, 1, 2};
int main() {
    scanf("%d%d%d%d", &x, &y, &x2, &y2);
    bool flag = 0;
    for (int i = 0; i < 8; i ++ ) {
        int tx, ty;
        tx = x + dx[i];
        ty = y + dy[i];
        if ((abs(tx - x2) == 2 && abs(ty - y2) == 1) || (abs(tx - x2) == 1 && abs(ty - y2) == 2)) {
            flag = 1;
            break;
        }
    }
    if (flag)   puts("Yes");
    else puts("No");
    return 0;
}

D

#include <bits/stdc++.h>
using namespace std;
int l1, r1, l2, r2;
int main() {
    scanf("%d%d%d%d", &l1, &r1, &l2, &r2);
    function<bool(int)> is_prime = [&](int x) {
        for (int i = 2; i <= x / i; i ++ )
            if (x % i == 0)
                return false;
        return true;
    };
    bool flag = 1;
    for (int i = l1; i <= r1; i ++ ) {
        int p = 0, q = 0;
        for (int j = l2; j <= r2; j ++ ) {
            if (is_prime(i + j))    p ++;
            else q ++;
        }
        if (p == 0) {
            flag = 0;
            break;
        }
    }
    if (flag)   puts("Aoki");
    else puts("Takahashi");
    return 0;
}

E

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int n, Q;
int w[N];
int c[N][20];
int h[N], e[N], ne[N], idx;
void add(int a, int b)
{
    e[idx] = b, ne[idx] = h[a], h[a] = idx ++;
}
void dfs(int u, int fa) 
{
    vector<int> v;
    v.push_back(w[u]);
    for (int i = h[u]; i != -1; i = ne[i]) {
        int j = e[i];
        if (j == fa)    continue;
        dfs(j, u);
        for (int k = 0; k < 20; k ++ ) {
            if (c[j][k] == 0)   break;
            v.push_back(c[j][k]);
        }
    }
    sort(v.begin(), v.end());
    reverse(v.begin(), v.end());
    for (int i = 0; i < v.size() && i < 20; i ++ )
        c[u][i] = v[i];
}
int main() {
    scanf("%d%d", &n, &Q);
    memset(h, -1, sizeof h);
    for (int i = 1; i <= n; i ++ )  scanf("%d", &w[i]);
    for (int i = 1; i < n; i ++ ) {
        int a, b;
        scanf("%d%d", &a, &b);
        add(a, b), add(b, a);
    }
    dfs(1, -1);
    while (Q -- ) {
        int root, k;
        scanf("%d%d", &root, &k);
        printf("%d\n", c[root][k - 1]);
    }
    return 0;
}
posted @ 2022-02-20 00:12  Angels_of_Death  阅读(89)  评论(0)    收藏  举报