深度优先搜索——First Step(洛谷 P3654)
题目选自洛谷P3654
本题遍历每一个可以站人的点,然后利用dfs的思路判断每一个点向下和向右是否能满足条件;但是k=1时需要特判,因为k=1意味着向下和向右重复计算,需要除以2。
注意在dfs前先判断 如果此路行不通就先返回了,不用接着往下递归
题目背景
知らないことばかりなにもかもが(どうしたらいいの?)
一切的一切 尽是充满了未知数(该如何是好)
それでも期待で足が軽いよ(ジャンプだ!)
但我仍因满怀期待而步伐轻盈(起跳吧!)
温度差なんていつか消しちゃえってね
冷若冰霜的态度 有朝一日将会消失得无影无踪
元気だよ元気をだしていくよ
拿出活力 打起精神向前迈进吧
我们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<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
int r,c,k,ans;
char mp[101][101];
int nt[2][2]={{0,1},{1,0}};
void dfs(int x,int y,int i,int j){if(j>k){ans++;return;}if(mp[x][y] !='.' || x<0 || y <0 || x>=r || y >=c)return;dfs(x+nt[i][0],y+nt[i][1],i,j+1);
}
int main(){cin>>r>>c>>k;for(int i=0;i<r;i++)for(int j=0;j<c;j++)cin>>mp[i][j];for(int i=0;i<r;i++)for(int j=0;j<c;j++)if(mp[i][j]=='.')for(int k=0;k<2;k++)dfs(i,j,k,1);if(k==1)ans /=2;cout<<ans<<endl;return 0;
}
深度优先搜索——First Step(洛谷 P3654)相关推荐
- 深度优先搜索——选数(洛谷 P1036)
今天的题是一道深度优先搜索的题 题目链接 选自洛谷(P1036) 是一道很经典的DFS问题 首先我们先看一下题目是怎么描述的,读完题目我会在后面给出详细的思路! 题目描述 已知 nn 个整数 x_1, ...
- 深度优先搜索——单词方阵(洛谷 P1101)
题目选自洛谷P1101 这道题也是挺不错的DFS的题,但是区别于一般的深搜, 这道题在选定一个方向后,就不能改变了! 给出我的详细思路就是: 用char a[101][101]保存输入的数据,int ...
- 洛谷 P3654 First Step (ファーストステップ)
P3654 First Step (ファーストステップ) 题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプ ...
- 洛谷:P3654 First Step (ファーストステップ)
题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我仍因满怀期待而步伐轻盈(起跳吧!) 温度差なん ...
- 洛谷-P3654 First Step (ファーストステップ)
题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我仍因满怀期待而步伐轻盈(起跳吧!) 温度差なん ...
- 洛谷P3654 First Step (ファーストステップ)
题目背景 知らないことばかりなにもかもが(どうしたらいいの?) 一切的一切 尽是充满了未知数(该如何是好) それでも期待で足が軽いよ(ジャンプだ!) 但我仍因满怀期待而步伐轻盈(起跳吧!) 温度差なん ...
- FirstStep(洛谷P3654题题解,Java语言描述)
题目要求 题目链接 分析 题意简单的说就是找连续的 "." . 必须是水平连续或是垂直连续. 当然是开一个暴力的搜索算法啦! 从开始搜到最后,每次只搜右向和下向,避免重复搜索,注意 ...
- 专题·深度优先搜索(DFS)【including 2N皇后,等边三角形,中国邮递员问题
初见安~这篇我们来讲讲深搜(DFS) 前文我们讲过了递归[这里是递推递归],这里我们就要运用到啦~ 所谓深搜,也顾名思义就是在深度上搜索,到了尽头则返回上一层,换一条路继续搜--也就是递归思想. 先看 ...
- 深度优先搜索——自然数的拆分问题(洛谷 P2404)
题目选自洛谷P2404 题目显然是用DFS来做,需要注意的是 结果是从小到大的,所以同一种答案不同位置都只算一种,所以在dfs的时候 我们每次从上一次的值开始搜索即可. 用数组p[9]的1-8下标位置 ...
最新文章
- java画满天星_java_java实现的满天星效果实例,本文实例讲述了java实现满天星 - phpStudy...
- HbuilderX跳转 / 定义快捷键
- 【机器视觉】 fuzzy_measure_pairing算子
- linux 更改文件和目录权限
- delphi XE 學習筆記二:TThread.CreateAnonymousThread
- python做大数据可视化软件_四款最受欢迎的大数据可视化工具
- java web整合开发pdf_Java Web整合开发王者归来.pdf
- wordpress图文安装教程 非常详细
- 计算机网络技术-Mooc
- 比官方更简洁的Tensorflow入门教程
- 期货交易应该如何界定交易中的时间周期?
- 小程序 身份认证服务器,如何实现微信小程序与.net core应用服务端的无状态身份验证...
- 夏侯王朝 - (王室族谱)
- Revit二次开发之技能篇(一)———轴网自动对齐
- Firefox for Android 代理设置
- arcgis直方图导出地图_利用Arcgis地图工具自动输出报告地图图纸
- RNNLSTM学习总结
- 机器人行业发展方向预测报告
- Linux学习问题篇
- Android实现卡拉OK字幕效果方法
热门文章
- 在页面中给flash加链接
- python中的 生产者和消费者
- 软件测试 学习之路 linux vim编辑器
- python循环体执行的次数与其他不同的是_【单选题】下面Python循环体执行的次数与其他不同的是( )...
- es6 Symbol 的内置属性
- a3967驱动_以A3967SLB为核心的步进电机控制系统设计
- Git笔记(16) 变基
- sql server ssl安全错误_渗透测试 丨 SQL注入的攻与防
- c语言malloc和直接声明,问下关于malloc的声明问题
- 《Linux 鸟哥私房菜》 第一部分 Linux文件、目录与磁盘格式