• 【洛谷 P3654】First Step (ファーストステップ) 题解(模拟+循环枚举)


    First Step (ファーストステップ)

    题目背景

    知らないことばかりなにもかもが(どうしたらいいの?)
    一切的一切 尽是充满了未知数(该如何是好)
    それでも期待で足が軽いよ(ジャンプだ!)
    但我仍因满怀期待而步伐轻盈(起跳吧!)
    温度差なんていつか消しちゃえってね
    冷若冰霜的态度 有朝一日将会消失得无影无踪
    元気だよ元気をだしていくよ
    拿出活力 打起精神向前迈进吧

    我们 Aqours,要第一次举办演唱会啦!

    虽然学生会长看上去不怎么支持我们的样子,可是有了理事长的支持,我们还是被允许在校内的篮球场里歌唱!

    歌曲也好好地准备过了,名字叫“最喜欢的话就没问题! (ダイスキだったらダイジョウブ!)“,大家一定会喜欢的吧!

    演唱会一定会顺利进行的!

    希望不要发生停电什么的事故哦……!

    题目描述

    可是……这个篮球场,好像很久没有使用过的样子啊……

    里面堆满了学校的各种杂物呢……

    我们 Aqours 的成员要怎么在里面列队站下呢?

    我们浦之星女子学院的篮球场是一个 R R R C C C 列的矩阵,其中堆满了各种学校的杂物 (用 # 表示),空地 (用 . 表示) 好像并不多的样子呢……

    我们 Aqours 现在已经一共有 K K K 个队员了,要歌唱舞蹈起来的话,我们得排成一条 1 × K 1\times K 1×K 的直线,一个接一个地站在篮球场的空地上呢 (横竖均可)。

    我们想知道一共有多少种可行的站位方式呢。

    Aqours 的真正的粉丝的你,能帮我们算算吗?

    输入格式

    第一行三个整数 R , C , K R, C, K R,C,K

    接下来的 R R R C C C 列,表示浦之星女子学院篮球场。

    输出格式

    总共的站位方式数量。

    样例 #1

    样例输入 #1

    5 5 2
    .###.
    ##.#.
    ..#..
    #..#.
    #.###
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    样例输出 #1

    8
    
    • 1

    提示

    R R R C C C K K K备注
    1 ∼ 2 1\sim2 12 ≤ 10 \leq 10 10 ≤ 10 \leq 10 10 ≤ min ⁡ ( R , C ) \leq \min(R,C) min(R,C)
    3 ∼ 4 3\sim4 34 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100 ≤ 1 \leq 1 1
    5 ∼ 6 5\sim6 56 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100 ≤ min ⁡ ( R , C ) \leq \min(R,C) min(R,C)没有障碍
    7 ∼ 10 7\sim10 710 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100 ≤ min ⁡ ( R , C ) \leq \min(R,C) min(R,C)

    对于所有数据, 1 ≤ R , C ≤ 100 1 \leq R,C \leq 100 1R,C100 1 ≤ k ≤ min ⁡ ( R , C ) 1 \leq k \leq \min(R,C) 1kmin(R,C)

    以下是彩蛋

    在 LoveLive!Sunshine!! 动画第一季第三集中,Aqours 队长高海千歌演唱“最喜欢的话就没问题!”到副歌前时,学校因为雷击停电。


    思路

    我趣,二次元!

    遍历整个篮球场,对于每个位置,判断其右侧和下方连续的空地数量是否大于等于k。如果满足条件,则将可行的排列方式数量加1。

    注意:当只有一个人时,即 k = 1 时,不要重复计算横向排列和纵向排列两种排列方式!


    AC代码

    #include 
    #define AUTHOR "HEX9CF"
    using namespace std;
    
    const int N = 105;
    
    int r, c, k;
    int ans = 0;
    char a[N][N];
    
    int main()
    {
        cin >> r >> c >> k;
    
        for (int i = 1; i <= r; i++)
        {
            for (int j = 1; j <= c; j++)
            {
                cin >> a[i][j];
            }
        }
    
        for (int i = 1; i <= r; i++)
        {
            int t = 0;
            for (int j = 1; j <= c; j++)
            {
                if ('#' == a[i][j])
                {
                    t = 0;
                    continue;
                }
                else
                {
                    t++;
                }
                if (t >= k)
                {
                    ans++;
                }
            }
        }
    
        if (k != 1)
        {
            for (int j = 1; j <= c; j++)
            {
                int t = 0;
                for (int i = 1; i <= r; i++)
                {
                    if ('#' == a[i][j])
                    {
                        t = 0;
                        continue;
                    }
                    else
                    {
                        t++;
                    }
                    if (t >= k)
                    {
                        ans++;
                    }
                }
            }
        }
    
        cout << ans << endl;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
  • 相关阅读:
    CTF--Web安全--SQL注入之Post-Union注入
    【小程序原生】
    R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
    【火灾检测】森林火灾检测系统(带面板)【含GUI Matlab源码 1921期】
    14 | Spark SQL 的 DataFrame API 读取CSV 操作
    【基于unity制作的游戏】《ZERO:天元》
    Grpc自定义类型(含Decimal)
    单应用架构设计和实现(springboot或者springcloud方式)
    【Python数据分析 - 5】:Numpy-数组的基本操作
    【Happy!1024】C++智能指针
  • 原文地址:https://blog.csdn.net/qq_34988204/article/details/134083970