青岛农业大学2023年ACM纳新赛

7-1

#include<bits/stdc++.h>
int a, b;
int main()
{
    std::cin >> a >> b;
    std::cout << a + b << "\n";
    return 0;
}

7-2

#include<bits/stdc++.h>
int main()
{
    for (int i = 0; i < 100; i ++)
        std::cout << "QAU_ACM实验室yyds\n";
    return 0;
}

7-3

#include<bits/stdc++.h>
typedef long long i64;
i64 a, b;
i64 res = 1;
int main()
{
    std::cin >> a >> b;
    for (int i = 0; i < b; i ++)
        res *= a;
    std::cout << res << "\n";
    return 0;
}

7-4

#include<bits/stdc++.h>
typedef long long i64;
const int N = 90;
int T;
int n;
std::vector<i64> L(N);
void init()
{
    L[0] = 2;
    L[1] = 1;
    for (int i = 2; i <= 86; i ++)
        L[i] = L[i - 1] + L[i - 2];
}
void solve()
{
    std::cin >> n;
    std::cout << L[n] << "\n";
}
int main()
{
    init();
    std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-5

#include<bits/stdc++.h>
int T = 1;
int a, last;
void solve()
{
    auto check = [&](int a)
    {
        if (a % 25) return true;
        if (a < 100 || a > 675) return true;
        return false;
    };
    for (int i = 0; i < 8; i ++)
    {
        std::cin >> a;
        if (i && a < last)
        {
            std::cout << "No\n";
            return ;
        }
        if (check(a))
        {
            std::cout << "No\n";
            return;
        }
        last = a;
    }
    std::cout << "Yes\n";
}
int main()
{
    while (T --)
    {
        solve();
    }
    return 0;
}

7-6

#include<bits/stdc++.h>
typedef long long i64;
int T = 1;
int a, b, c;
int x;
void solve()
{
    std::cin >> a >> b >> c >> x;
    int cnt = 0;
    for (int i = 0; i <= a; i ++)
        for (int j = 0; j <= b; j ++)
            for (int k = 0; k <= c; k ++)
                if (i * 500 + j * 100 + k * 50 == x)
                    cnt ++;
    std::cout << cnt << "\n";
}
int main()
{
    // std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-7

#include<bits/stdc++.h>
typedef long long i64;
int T = 1;
std::string a;
std::string b = "aoyeui";
void solve()
{
    std::cin >> a;
    for (int i = 0; i < a.size(); i ++)
    {
        a[i] = tolower(a[i]);
        if (~b.find(a[i]))
            continue;
        std::cout << "." << a[i];
    }
}
int main()
{
    // std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-8

#include<bits/stdc++.h>
typedef long long i64;
int T = 1;
int n;
void solve()
{
    std::cin >> n;
    std::cout << (n / 10 * 100) + ((n % 10) <= 6 ? (n % 10 * 15) : 100) << "\n";
}
int main()
{
    // std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-9

#include<bits/stdc++.h>
typedef long long i64;
int T = 1;
std::vector<int> a(5);
std::set<int> s;
void solve()
{
    for (int i = 0; i < 5; i ++) std::cin >> a[i];
    for (int i = 0; i < 5; i ++)
        for (int j = i + 1; j < 5; j ++)
            for (int k = j + 1; k < 5; k ++)
                s.insert(a[i] + a[j] + a[k]);
    std::set<int>::iterator it = s.end();
    it --;
    it --;
    it --;
    std::cout << *it << "\n";
}
int main()
{
    // std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-10

#include<bits/stdc++.h>
typedef long long i64;
int T = 1;
int n, m;
std::string a, b;
void solve()
{
    int i;
    std::cin >> n >> m >> a >> b;
    for (i = 0; i == 0 || a.size() <= 2 * b.size(); i ++)
    {
        if (~a.find(b))
        {
            std::cout << i << "\n";
            return ;
        }
        a = a + a;
    }
    if (~a.find(b))
        std::cout << i << "\n";
    else
        std::cout << "-1\n";
}
int main()
{
    std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-11

#include<bits/stdc++.h>
char d[4][4][4];
int dist[4][4][4];
int dx[6] = {1, -1, 0, 0, 0, 0};
int dy[6] = {0, 0, 1, -1, 0, 0};
int dz[6] = {0, 0, 0, 0, 1, -1};
struct Node
{
    int z, x, y;
};
void bfs()
{
    memset(dist, -1, sizeof dist);
    std::queue<Node> q;
    dist[1][1][1] = 0;
    q.push({1, 1, 1});
    while (q.size())
    {
        Node t = q.front();
        q.pop();
        int x = t.x, y = t.y, z = t.z;
        if (x == 3 && y == 3 && z == 3)
            break;
        for (int i = 0; i < 6; i ++)
        {
            int a = x + dx[i];
            int b = y + dy[i];
            int c = z + dz[i];
            // std::cout << a << b << c << std::endl;
            if (a < 1 || a > 3 || b < 1 || b > 3 || c < 1 || c > 3) continue;
            if (dist[c][a][b] != -1) continue;
            if (d[c][a][b] == '*') continue;
            dist[c][a][b] = dist[z][x][y] + 1;
            q.push({c, a, b});
        }
    }
}
int main()
{
    for (int i = 1; i <= 3; i ++)
        for (int j = 1; j <= 3; j ++)
            std::cin >> d[i][j] + 1;
    bfs();
    if (~dist[3][3][3]) printf("Escaped in %d minute(s).\n", dist[3][3][3]);
    else puts("Trapped!");
    return 0;
}

7-12

#include<bits/stdc++.h>
typedef long long LL;
int T;
LL n;
void solve()
{
    std::cin >> n;
    LL l = 0, r = 1e10;
    auto check = [&](LL x)
    {
        return x * (x - 1) / 2 >= n;
    };
    while (l < r)
    {
        LL mid = l + r >> 1;
        if (check(mid)) r = mid;
        else l = mid + 1;
    }
    if (r * (r - 1) / 2 == n)
        std::cout << r << std::endl;
    else
    {
        LL ans = r - 1 + n - (r - 1) * (r - 2) / 2;
        std::cout << ans << std::endl;
    }
}
int main()
{
    std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

7-13

#include<bits/stdc++.h>
typedef long long i64;
const int N = 105, INF = 0x3f3f3f3f;
int T = 1;
int n, m;
int c[N][N], ans[N][N];
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
void dp(int x, int y)
{
    for (int i = 0; i < 4; i ++)
    {
        int a = x + dx[i], b = y + dy[i];
        if (c[a][b] < c[x][y] && ans[x][y] + 1 > ans[a][b])
        {
            ans[a][b] = ans[x][y] + 1;
            dp(a, b);
        }
    }
}
void solve()
{
    std::string name;
    std::cin >> name >> n >> m;
    memset(ans, 0, sizeof ans);
    memset(c, 0x3f, sizeof c);
    for (int i = 1; i <= n; i ++)
        for (int j = 1; j <= m; j ++)
            std::cin >> c[i][j];
    for (int i = 1; i <= n; i ++)
        for (int j = 1; j <= m; j ++)
            dp(i, j);
    int mx = 0;
    for (int i = 1; i <= n; i ++)
        for (int j = 1; j <= m; j ++)
            mx = std::max(ans[i][j], mx);
    std::cout << name << ": " << mx + 1 << "\n";
}
int main()
{
    std::cin >> T;
    while (T --)
    {
        solve();
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值