P3654 First Step (ファーストステップ)——暴力枚举
First Step (ファーストステップ)
题目背景
知らないことばかりなにもかもが(どうしたらいいの?)
一切的一切 尽是充满了未知数(该如何是好)
それでも期待で足が軽いよ(ジャンプだ!)
但我仍因满怀期待而步伐轻盈(起跳吧!)
温度差なんていつか消しちゃえってね
冷若冰霜的态度 有朝一日将会消失得无影无踪
元気だよ元気をだしていくよ
拿出活力 打起精神向前迈进吧
我们 Aqours,要第一次举办演唱会啦!
虽然学生会长看上去不怎么支持我们的样子,可是有了理事长的支持,我们还是被允许在校内的篮球场里歌唱!
歌曲也好好地准备过了,名字叫“最喜欢的话就没问题! (ダイスキだったらダイジョウブ!)“,大家一定会喜欢的吧!
演唱会一定会顺利进行的!
希望不要发生停电什么的事故哦……!
题目描述
可是……这个篮球场,好像很久没有使用过的样子啊……
里面堆满了学校的各种杂物呢……
我们 Aqours 的成员要怎么在里面列队站下呢?
我们浦之星女子学院的篮球场是一个 RRR 行 CCC 列的矩阵,其中堆满了各种学校的杂物 (用 #
表示),空地 (用 .
表示) 好像并不多的样子呢……
我们 Aqours 现在已经一共有 KKK 个队员了,要歌唱舞蹈起来的话,我们得排成一条 1×K1\times K1×K 的直线,一个接一个地站在篮球场的空地上呢 (横竖均可)。
我们想知道一共有多少种可行的站位方式呢。
Aqours 的真正的粉丝的你,能帮我们算算吗?
输入格式
第一行三个整数 R,C,KR, C, KR,C,K。
接下来的 RRR 行 CCC 列,表示浦之星女子学院篮球场。
输出格式
总共的站位方式数量。
样例 #1
样例输入 #1
5 5 2
.###.
##.#.
..#..
#..#.
#.###
样例输出 #1
8
提示
RRR | CCC | KKK | 备注 | |
---|---|---|---|---|
1∼21\sim21∼2 | ≤10\leq 10≤10 | ≤10\leq 10≤10 | ≤min(R,C)\leq \min(R,C)≤min(R,C) | 无 |
3∼43\sim43∼4 | ≤100\leq 100≤100 | ≤100\leq 100≤100 | ≤1\leq 1≤1 | 无 |
5∼65\sim65∼6 | ≤100\leq 100≤100 | ≤100\leq 100≤100 | ≤min(R,C)\leq \min(R,C)≤min(R,C) | 没有障碍 |
7∼107\sim107∼10 | ≤100\leq 100≤100 | ≤100\leq 100≤100 | ≤min(R,C)\leq \min(R,C)≤min(R,C) | 无 |
对于所有数据,1≤R,C≤1001 \leq R,C \leq 1001≤R,C≤100,1≤k≤min(R,C)1 \leq k \leq \min(R,C)1≤k≤min(R,C)。
分析
- 题意:看看有多少个连续的’.‘字符,长度为k;直接暴力枚举每一行、每一列,从每个字符开始向后看看有多少个连续的’.',大于k既满足题意,然后紧接着从下一个字符再开始同样操作。
- 需要注意是需要连着的,1*k,一开始以为一行或者一列满足k个即可,正好和样例对上后来wa了,发现原来必须是连续的k个’.'才算一种站法;
#include<bits/stdc++.h>using namespace std;int r, c, k, ans;
char a[110][110];int main() {std::ios::sync_with_stdio(false);cin.tie(nullptr);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++) {for (int j = 1; j <= c; j++) {int cnt = 0;//以(i,j)开始,向右有几个连续的'.'for (int k = j; k <= c; k++) {if (a[i][k] == '#')break;cnt++;}if (cnt >= k)ans++;}}//列for (int i = 1; i <= c; i++) {for (int j = 1; j <= r; j++) {int cnt = 0;//以(i,j)开始,向下有几个连续的'.'for (int k = j; k <= c; k++) {if (a[k][i] == '#')break;cnt++;}if (cnt >= k)ans++;}}if (k != 1)cout << ans;elsecout << ans / 2;return 0;
}
P3654 First Step (ファーストステップ)——暴力枚举相关推荐
- 【暴力枚举】【JAVA】P3654First Step
题目:P3654 First Step (ファーストステップ) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) ## 思路 双重遍历所有位置(因为是二维表),分别是向下和向右寻找可行 ...
- 【算法1-3】暴力枚举——First Step
First Step (ファーストステップ) 题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我 ...
- 新手入门刷题(专题三)暴力枚举
新手入门刷题(专题三)暴力枚举--->持续更新 4.14 统计方形(数据加强版) 题目描述 有一个 n×m 方格的棋盘,求其方格包含多少正方形.长方形(不包含正方形). 输入格式 一行,两个正整 ...
- day 20 暴力枚举
P3392 涂国旗 涂最少的格子(枚举) #include <bits/stdc++.h> using namespace std;int n, m, ans = 1e9; char a[ ...
- POJ 3174 暴力枚举
思路: 暴力枚举三个点 判一判 搞定 (x1*y1=x2*y2) x1.y1.x2.y2为他们两两的差 //By SiriusRen #include <cstdio> using nam ...
- codeforces数学1600day6[CodeForces - 1029C多区间交+枚举,CodeForces 992C[数学公式推导],CodeForces 992B[质因数分解+暴力枚举]]
A - Maximal Intersection CodeForces - 1029C 题目大意:就是给你n个区间,这n个区间有公共的区间长度为x,现在叫你从这n个区间中删掉一个使得x最大化. 解题思 ...
- 最大字段和 冲出暴力枚举
这篇解题报告是对我最近一些题的总结,里面的代码都是我解题,优化,再优化的过程的记录,记录了自己对算法的完善与优化思路,还有对编程哲学的理解:do it,do it well. 很感谢孙老师您,让自己可 ...
- hdu 4587 TWO NODES 暴力枚举+tarjan
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意是拿掉两个点 求最多可以把整个图分成几个联通块 注意到有一个模板是可以通过找割点来快速求出 ...
- 一道暴力枚举题Win32版本示例
来看一个问题:该问题的解法是 暴力枚举:这大概是ACM方面的:名称叫火柴棒等式: 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴棍拼出的整数( ...
最新文章
- Azkaban入门(启动一个Simple Example)
- hbase 修改表名_HBase学习——2.HBase原理
- SAX解析xml (遍历DOM树各节点)
- android系统release签名
- SAP IDOC开发
- 在js中如何判断一个对象是否为空
- vue :class 动态绑定样式_Notes04vbind动态绑定class
- 【面向对象设计原则】之依赖倒置原则(DIP)
- Django exclude操作
- css怎么修改图片像素,怎么改变图片宽度_word怎么改变图片像素大小
- 云计算时代:PC会消亡吗?
- 老钓友分享蚯蚓钓鲤鱼配方
- 是真正的发现,还是可耻的堕落?
- 地理生物结业考_今年我初二,明天我地理生物结业考,但是我现在啥都不会,我应该怎么办?...
- 树莓派4b入门之开发RFID系统—两种MFRC522读写脚本
- 惊天大突破!「我国数学家证明 NP=P」!道翰天琼认知智能机器人平台API接口大脑为您揭秘。
- win10电脑耳机没有声音 如何在不重启电脑情况下耳机重新有声音
- 长铗:搭积木无法建筑DeFi摩天楼,Bytom用工程思维构建MOV宇宙
- DiskGenius
- GIS基础(4)常见的GIS数据格式