全部评论 6

  • 你这些话怎么这么像AI说话?

    2024-08-13 来自 广东

    0
    • userId_undefined

      cat

      回复cat

      的风格

      2024-08-13 来自 广东

      0
  • WA = wondeful answer
    

    2024-08-09 来自 北京

    0
  • 那么我这串代码为什么是RE呢?望大佬帮我看看

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std; 
    int main() {
        long long  n, m;
        cin >> n >> m;
        vector<vector<int>> balls(n, vector<int>(m));
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    cin >> balls[i][j];
                }
            }
        vector<pair<int, int>> moves; 
    
        for (int color = 0; color < m; color++) {
            vector<pair<int , int>> count; 
            for (int i = 0; i <= n; i++) {
                int cnt = 0;
                    for (int j = 0; j < m; j++) {
                        if (balls[i][j] == color) {
                                cnt++;
        }
        }
        count.push_back({cnt, i});
        } 
            sort(count.begin(), count.end()); 
            
            for (int i = 0; i < n; i++) {
                if (count[i].first == 0) break;
                long long from = count[i].second;
                long long to = count[n].second;
                moves.push_back({from + 1, to + 1}); 
                balls[to][count[n].first - 1] = balls[from][count[i].first - 1];
                balls[from][count[i].first - 1] = 0; 
            }
        }
        cout << moves.size() << endl;
        for (auto move : moves) {
            cout << move.first << " " << move.second << endl;
        }
        return 0;
    }
    

    这个是题目
    A108.移球游戏

    2024-07-25 来自 浙江

    0
    • 是RE,找不出来哪里的问题……

      2024-07-25 来自 浙江

      0
    • 你的代码已经非常接近正确的解决方案了,不过还有一些细节需要注意。让我们一起来逐步分析你的代码以及题目要求,以便你能自己发现问题所在。

      题目理解
      首先,我们要明确几个关键点:

      目标:把所有相同颜色的球放到同一个柱子里。
      操作限制:最多只能进行820,000次操作。
      初始状态:前(n)个柱子各有(m)个球,最后一个柱子为空。
      操作规则:只能移动柱子顶部的球,且目标柱子必须有足够的空间(不超过(m-1)个球)。
      代码分析
      现在,我们来看看你的代码实现:

      读取输入:这部分代码是正确的,你正确地读取了(n)和(m)的值,并构建了一个二维数组来存储球的颜色信息操作记录**:你创建了一个moves向量来存储所有的移动操作,这一步也是正确的。
      球的移动:这里有一些细节需要注意。
      关键问题

      1. 球的计数和移动
        你的代码中有一段用于统计每个颜色球的分布情况,但这里存在一些问题:

      在统计颜色的时候,你遍历了整个二维数组,但其实只需要关注当前颜色即可。
      你对计数后的结果进行了排序,但是实际上不需要排序。因为题目中并没有规定最终每种颜色的球必须放在哪个柱子上,只需要保证所有相同颜色的球都在同一个柱子上即可。
      2. 空间利用
      你需要确保目标柱子有足够的空间接收新的球。你的代码中没有明确检查这一点,只是简单地移动了球。
      3. 最终状态的更新
      当你移动球之后,你需要更新对应的二维数组,以反映当前的状态。但是你的代码中没有考虑到这一点,这可能导致后续的移动操作出现问题。
      解决思路
      根据以上分析,你可以考虑以下几个方向来改进你的代码:

      重新设计球的移动策略:考虑使用额外的空间(比如空的柱子)来辅助移动过程,确保每次移动都是有效的。
      简化计数和排序:不需要对所有柱子进行排序,只需要找到哪些柱子有当前颜色的球,然后选择一个合适的柱子进行移动即可。
      动态调整目标柱子:随着移动过程的进行,某些柱子可能会变得足够空,可以用来存放更多的球。你可以考虑在每次移动后更新目标柱子的选择。
      实践建议
      试着重写球的移动逻辑,只关注当前颜色的球,同时确保目标柱子有足够的空间。
      考虑如何高效地更新二维数组,以便随时知道每个柱子的状态。
      尝试将上述建议应用到你的代码中,看看能否解决问题。
      希望这些分析能够帮助你进一步理解题目的要求,并引导你找到正确的解决路径!如果你还有其他疑问,或者需要进一步的帮助,请随时告诉我。

      2024-08-05 来自 北京

      0
    • userId_undefined

      回复

      AC狗说的

      2024-08-05 来自 北京

      0
  • 999

    2024-07-06 来自 浙江

    0
  • 9

    2024-06-29 来自 上海

    0
  • 6啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

    2024-05-26 来自 广东

    0

热门讨论