洛谷 P5483 小A的烦恼 题解

题目传送门

STEP 1:简化题意

题目简单来说就是输入几个表格,然后把它们按先后顺序排成一排,合成一个大表格,进行输出。

STEP 2:思路推导

题目是一个接一个表格输入,把每个位置的数据当做字符串,用一个 string 类型的数组把它们保存下来。

STEP 3:分析难点

本题难点主要在处理数据上,比较叫人头大的点在于它的输入是用逗号隔开的。

因此我们必须集体输入一行,再进行提取

STEP 4:避开坑点

  1. 每行输出最后不加逗号。
  2. 输入的每个表格还有个题目,也得当做数据处理。
  3. 表格里的每个元素并不是只有一个字符,得用 string 来存储其中每个位置的数据(具体操作见代码)。

AC 代码:

注释比较多,希望你能认真看。

#include<bits/stdc++.h>
using namespace std;
string ans[110][10001], tmp;
// tmp 是临时字符串。
int n, m, now = 1, maxn = -100;
// now 是记录目前已经存到第几列了,也是 ans 数组宽度(见输出)。
// maxn 是最大的行数(即输出的行数)。
inline int read() {
    char c;
    int x = 0, f = 1;
    c = getchar();
    while (c < '0' || c > '9') {
        if (c == '-')f = -1;
        c = getchar();
    }
    while (c >= '0' && c <= '9') {
        x = x * 10 + c - '0';
        c = getchar();
    }
    return x * f;
}
int main() {
    n = read();
    while (n--) {
        int t = -100;
        m = read();maxn = max(maxn, m);
        cin >> tmp;
        ans[0][now] = tmp;
        // 标题也得存入数组。
        for (int k = 1; k <= m; k++) {
            cin >> tmp;
            int g = 0, tot = 0;
            // g 是每个元素的起始点, tot 是每行元素的个数。
            int l = tmp.size();
            tmp += ",";// 加一个逗号,方便后面区分元素。
            for (int i = 0; i <= l; i++) {
                if (tmp[i] == ',') {
                    ans[k][tot + now] = tmp.substr(g, i - g );
                    // 从 g 开始,g ~ i - 1都属于这个元素。
                    g = i + 1;// 更新起始位置。
                    tot++;
                }
            }
            t = max(t, tot);
        }
        now += t;
    }
    for (int i = 0; i <= maxn; i++) { // 标题在第 0 行。
        for (int j = 1; j < now - 1; j++)
            cout << ans[i][j] << ',';
        cout << ans[i][now - 1] << '\n';
    }
    return 0;
}

这是一篇很正经的题解

相关推荐

  1. P5483 A烦恼 题解

    2023-12-15 19:04:01       46 阅读
  2. P1234题解

    2023-12-15 19:04:01       13 阅读
  3. P10397题解

    2023-12-15 19:04:01       14 阅读
  4. P1000-P1001题解

    2023-12-15 19:04:01       20 阅读
  5. P8740 [蓝桥杯 2021 省 A] 填空问题 题解

    2023-12-15 19:04:01       8 阅读
  6. P1923 求第k

    2023-12-15 19:04:01       20 阅读
  7. P4554 游戏

    2023-12-15 19:04:01       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 19:04:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 19:04:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 19:04:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 19:04:01       20 阅读

热门阅读

  1. 如何使用Composer安装和管理依赖?

    2023-12-15 19:04:01       47 阅读
  2. docker 定时检查磁盘并清理

    2023-12-15 19:04:01       40 阅读
  3. 爬虫心得分享小实用策略(应该不能算技巧)

    2023-12-15 19:04:01       37 阅读
  4. K8s client go 合并informer

    2023-12-15 19:04:01       40 阅读
  5. Scala-初学

    2023-12-15 19:04:01       41 阅读
  6. HackTheBox-Redeemer:Redis未授权访问

    2023-12-15 19:04:01       29 阅读
  7. SQL数列

    SQL数列

    2023-12-15 19:04:01      44 阅读
  8. Python实现单字母密码算法

    2023-12-15 19:04:01       43 阅读