牛客网--19校招--俄罗斯方块
发布日期:2021-04-30 21:01:46 浏览次数:100 分类:精选文章

本文共 818 字,大约阅读时间需要 2 分钟。

为了解决这个问题,我们需要计算小易在游戏中获得的分数。游戏规则是,当一整行方块都被占满时,这一行会被消去,并得到1分。我们需要找到每一列被占满的次数,并将这些次数相加,得到总分。

方法思路

  • 问题分析:每当某一列的方块数达到或超过n时,这一行会被消去,得分加1。因此,我们需要计算每一列的方块数,并确定每一列被占满的次数。
  • 数据结构:使用一个数组来记录每一列的方块数。
  • 处理输入:读取输入的列数n和方块数m,然后读取每个方块的位置,更新对应列的方块数。
  • 计算得分:对于每一列,计算其方块数被n整除的次数,即每一列的得分。最后将所有列的得分相加,得到总分。
  • 解决代码

    #include 
    int main() { int n, m; scanf("%d %d", &n, &m); int h[n]; // 初始化每列的高度为0 for (int i = 0; i < n; ++i) { h[i] = 0; } for (int i = 0; i < m; ++i) { int c; scanf("%d", &c); h[c - 1]++; } int score = 0; for (int i = 0; i < n; ++i) { score += h[i] / n; } printf("%d\n", score);}

    代码解释

  • 读取输入:使用scanf读取nm,然后初始化一个数组h来记录每一列的方块数。
  • 更新方块数:遍历每个方块的位置,更新对应列的方块数。
  • 计算得分:对于每一列,计算其方块数被n整除的次数,并累加这些次数,得到总分。
  • 输出结果:打印总分。
  • 这个方法通过遍历每个方块的位置,记录每一列的方块数,并计算每一列的得分,最终得到总分,确保了计算的准确性和效率。

    上一篇:大佬分享开发经验!一份非常适合收藏的Android进阶面试题!专题解析
    下一篇:Leetcode--213. 打家劫舍Ⅱ

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2026年06月11日 15时00分50秒