AtCoder ABC335 A-E代码分享

2024-01-14 20:29:15 浏览数 (2)

大家好!我是小码匠。

上周六打AtCoder的线上赛,前4题都很顺利,都是一次AC掉(这次前4题还是有些小水)。

一看E那道题,感觉能搞定,到最后的一刻还一直在努力。结果很悲剧,太气人了,E那道题要能搞定,老码农说这次排名能冲进前1150,我就可以涨大分了,真不知道以后还能不能有这种好机会。

下面分享下代码,最近要准备期末考试了,没写题解。

ABC335 - A - 202<s>3</s>

https://atcoder.jp/contests/abc335/tasks/abc335_a

代码

代码语言:javascript复制
#include <bits/stdc  .h>

using namespace std;

void best_coder() {
    string s;
    cin >> s;
    s[s.size() - 1] = '4';
    cout << s;
}

void happy_coder() {

}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    return 0;
}

ABC335 - B - Tetrahedral Number

https://atcoder.jp/contests/abc335/tasks/abc335_b

代码

代码语言:javascript复制
#include <bits/stdc  .h>

using namespace std;

void best_coder() {
    int n;
    cin >> n;
    for (int i = 0; i <= n;   i) {
        int cnt = 0;
        cnt  = i;
        for (int j = 0; j <= n - cnt;   j) {
            cnt  = j;
            for (int s = 0; s <= n - cnt;   s) {
                cout << i << " " << j << " " << s << 'n';
            }
            cnt -= j;
        }
    }
}

void happy_coder() {

}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    return 0;
}

ABC335 - C - Loong Tracking

https://atcoder.jp/contests/abc335/tasks/abc335_c

代码分享

代码语言:javascript复制
#include <bits/stdc  .h>

using namespace std;

const int max_n = 2e5   5;

struct pos {
    int x, y;
} head[max_n];

void best_coder() {
    int n, q;
    cin >> n >> q;
    head[0].x = 1;
    head[0].y = 0;
    int cnt = 0;
    for (int i = 1; i <= q;   i) {
        int a;
        cin >> a;
        if (a == 1) {
            char b;
            cin >> b;
            head[cnt   1] = head[cnt];
            if (b == 'R') {
                  head[  cnt].x;
            } else if (b == 'L') {
                --head[  cnt].x;
            } else if (b == 'U') {
                  head[  cnt].y;
            } else {
                --head[  cnt].y;
            }
        } else {
            int b;
            cin >> b;
            if (b - 1 <= cnt) {
                cout << head[cnt - b   1].x << " " << head[cnt - b   1].y << 'n';
            } else {
                cout << b - cnt << " " << 0 << 'n';
            }
        }
    }
}

void happy_coder() {

}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    return 0;
}

ABC335 - D - Loong and Takahashi

https://atcoder.jp/contests/abc335/tasks/abc335_d

代码分享

代码语言:javascript复制
#include <bits/stdc  .h>

using namespace std;

int g[50][50], a;
void color(int start, int m) {

    for (int i = start; i < m;   i) {
        g[start][i] = a;
          a;
    }

    for (int i = start   1; i < m;   i) {
        g[i][m - 1] = a;
          a;
    }

    for (int i = m - 2; i >= start; --i) {
        g[m - 1][i] = a;
          a;
    }

    for (int i = m - 2; i > start; --i) {
        g[i][start] = a;
          a;
    }
}

void best_coder() {
    int n;
    cin >> n;
    a = 1;
    for (int i = 0; i < n / 2;   i) {
        color(i, n - i);
    }
    for (int i = 0; i < n;   i) {
        for (int j = 0; j < n;   j) {
            if (i == n / 2 && j == n / 2) {
                cout << 'T' << " ";
            } else {
                cout << g[i][j] << " ";
            }
        }
        cout << 'n';
    }
}

void happy_coder() {

}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    return 0;
}

ABC335 - E - Non-Decreasing Colorful Path

https://atcoder.jp/contests/abc335/tasks/abc335_e

代码分享:

代码语言:javascript复制
#include <bits/stdc  .h>

using namespace std;

const int max_n = 2e5   5;
bool vis[max_n];
vector<int> g[max_n];
int ans = 0;
int w[max_n];
int b[max_n];
void dfs(int u, int fa) {
    b[u] = max(b[fa]   (w[u] != w[fa]), b[u]);
    vis[u] = true;
    for (auto i : g[u]) {
//        if (w[i] == w[u] && !vis[i]) {
//            b[i] = max(b[i], cnt);
//            dfs(i);
//            continue;
//        }
        if (vis[i] && b[i] >= b[u]   (w[u] != w[i])) {
            continue;
        }
//          cnt;
        dfs(i, u);
//        --cnt;
    }
}

void best_coder() {
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n;   i) {
        cin >> w[i];
    }
    for (int i = 0; i < m;   i) {
        int u, v;
        cin >> u >> v;
        if (w[u] < w[v]) {
            g[u].push_back(v);
        } else if (w[u] == w[v]) {
            g[u].push_back(v);
            g[v].push_back(u);
        } else {
            g[v].push_back(u);
        }
    }
//    cnt = 1;
    dfs(1, 0);
    cout << b[n];
}

void happy_coder() {

}

int main() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    // 小码匠
    best_coder();

    // 最优解
    // happy_coder();

    return 0;
}
  • 下面代码不是AC版代码,最初我是想用并查集 DP,可不太会打,就开始DFS了,结果废了九牛二虎之力,还是有14个测试点没过去,这版代码是TLE的代码。
  • 对了,想问一句,有没有谁E这道题用DFS卡过去的,有吗?本来我还想尝试快读在卡下。。。

0 人点赞