其他分享
首页 > 其他分享> > NCD 2019

NCD 2019

作者:互联网

C. Hasan and his lazy students

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e3 + 10;
ll sum[N][N];
int dp[N], a[N];
int main()
{
    int cass;
    for (scanf("%d", &cass); cass; cass--)
    {
        int n;
        scanf("%d", &n);
        memset(sum, 0, sizeof(sum));
        int maxx = 1;
        for (int i = 0; i < n; i++)
        {
            scanf("%d", a + i);
            dp[i] = sum[i][1] = 1;
            for (int j = 0; j < i; j++)
            {
                if (a[j] < a[i])
                {
                    dp[i] = max(dp[i], dp[j] + 1);
                    sum[i][dp[j] + 1] = (sum[i][dp[j] + 1] + sum[j][dp[j]]) % mod;
                    maxx = max(maxx, dp[i]);
                }
            }
        }
        ll res = 0;
        for (int i = 0; i < n; i++) res = (res + sum[i][maxx]) % mod;
        printf("%d %lld\n", maxx, res);
    }
    return 0;
}

D. Football Cup

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int cass;
    for (scanf("%d", &cass); cass; cass--)
    {
        int x, y;
        scanf("%d%d", &x, &y);
        if (x == y) puts("Iskandar");
        else if (x > y) puts("Bashar");
        else puts("Hamada");
    }
    return 0;
}

F. Research projects

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
    int cass;
    for (cin >> cass; cass; cass--)
    {
        ll n, k;
        scanf("%lld%lld", &n, &k);
        if (n == k)
        {
            puts("0");
            continue;
        }
        ll ans = (n - k) / 6;
        if ((n - k) % 6) ans++;
        printf("%lld\n", ans);
    }
    return 0;
}

H. Mr. Hamra and his quantum particles

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, m, q;
int p[N];
int find(int x)
{
    if (p[x] != x) p[x] = find(p[x]);
    return p[x];
}
int main()
{
    int cass;
    for (scanf("%d", &cass); cass; cass--)
    {
        string ans;
        scanf("%d%d%d", &n, &m, &q);
        for (int i = 1; i <= n; i++) p[i] = i;
        int x, y;
        while (m--)
        {
            scanf("%d%d", &x, &y);
            if (find(x) != find(y)) p[find(x)] = find(y);
        }
        while (q--)
        {
            scanf("%d%d", &x, &y);
            if (find(x) == find(y)) ans += '1';
            else ans += '0';
        }
        cout << ans << "\n";
    }
    return 0;
}

L. Chemistry Exam

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int cass;
    for (scanf("%d", &cass); cass; cass--)
    {
        int n, ans;
        scanf("%d", &n);
        for (int i = 0, x; i < n; i++)
        {
            scanf("%d", &x);
            for (ans = 0; x; x /= 2) ans += x & 1;
            if (i) printf(" ");
            printf("%d", ans);
        }
        puts("");
    }
    return 0;
}

M. NCD Salary

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int cass;
    for (scanf("%d", &cass); cass; cass--)
    {
        int B1, P1, B2, P2;
        scanf("%d%d%d%d", &B1, &P1, &B2, &P2);
        if (!B1 || !B2)
        {
            if (B1 == B2) puts("Lazy");
            else if (B1 > B2) puts("HaHa");
            else puts("Congrats");
            continue;
        }
        double x = P1 * log(B1), y = P2 * log(B2);
        if (fabs(x - y) <= 1e-7) puts("Lazy");
        else if (x > y) puts("HaHa");
        else puts("Congrats");
    }
    return 0;
}

 

标签:puts,int,scanf,2019,cass,ans,NCD,dp
来源: https://www.cnblogs.com/ltzmgby/p/15762281.html