1. 程式人生 > >洛谷 P3654 First Step (ファーストステップ)

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

new problem article -m har include size hold blank

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

題目背景

知らないことばかりなにもかもが(どうしたらいいの?)

一切的一切 盡是充滿了未知數(該如何是好)

それでも期待で足が軽いよ(ジャンプだ!)

但我仍因滿懷期待而步伐輕盈(起跳吧!)

溫度差なんていつか消しちゃえってね

冷若冰霜的態度 有朝一日將會消失得無影無蹤

元気だよ元気をだしていくよ

拿出活力 打起精神向前邁進吧

技術分享圖片

我們Aqours,要第一次舉辦演唱會啦!

雖然學生會長看上去不怎麽支持我們的樣子,可是有了理事長的支持,我們還是被允許在校內的籃球場裏歌唱!

歌曲也好好地準備過了,名字叫“最喜歡的話就沒問題! (ダイスキだったらダイジョウブ!)“,大家一定會喜歡的吧!

演唱會一定會順利進行的!

希望不要發生停電什麽的事故哦……!

題目描述

可是……這個籃球場,好像很久沒有使用過的樣子啊……

裏面堆滿了學校的各種雜物呢……

我們Aqours的成員要怎麽在裏面列隊站下呢?

我們浦之星女子學院的籃球場是一個R行C列的矩陣,其中堆滿了各種學校的雜物 (用"#"表示),空地 (用"."表示) 好像並不多的樣子呢……

我們Aqours現在已經一共有K個隊員了,要歌唱舞蹈起來的話,我們得排成一條1*K的直線,一個接一個地站在籃球場的空地上呢 (橫豎均可)。

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

Aqours的真正的粉絲的你,能幫我們算算嗎?

輸入輸出格式

輸入格式:

第一行三個整數 R, C, K。

接下來的R行C列,是浦之星女子學院籃球場。

輸出格式:

總共的站位方式數量。

輸入輸出樣例

輸入樣例#1: 復制
5 5 2
.###.
##.#.
..#..
#..#.
#.###
輸出樣例#1: 復制
8

說明

          R        C          K         備註
1-2      <=10     <=10       <=min(R,C)  無
3-4      <=100    <=100      1           無        
5-6      <=100    <=100      <=min(R,C)  沒有障礙
7-10     <=100    <=100      <=min(R,C)  無

以下是彩蛋

在LoveLive!Sunshine!!動畫第一季第三集中,Aqours隊長高海千歌演唱“最喜歡的話就沒問題!”到副歌前時,學校因為雷擊停電。

思路:模擬+特判。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k;
char s[110];
int ans,flag,sum;
int map[101][101];
int main(){
    scanf("%d%d%d",&n,&m,&k);
    for(int i=1;i<=n;i++){
        scanf("%s",s);
        for(int j=0;j<m;j++)
            if(s[j]==.)    map[i][j+1]=1,sum++;
    }
    if(k==1){ cout<<sum;return 0; } 
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            if(map[i][j]){
                flag=0;
                if(j+k-1<=m){
                    for(int q=0;q<k;q++)
                        if(!map[i][j+q]){ flag=1;break; }
                    if(!flag)    ans++;flag=0;
                }
                if(i+k-1<=n){
                    for(int q=0;q<k;q++)
                        if(!map[i+q][j]){ flag=1;break; }
                    if(!flag)    ans++;
                }
            }
        }
    cout<<ans;
}

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