1 条题解
-
0
自动搬运
来自洛谷,原作者为

Angel_Virus
**搬运于
2025-08-24 21:31:50,当前版本为作者最后更新于2017-11-08 20:18:25,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
其实这题很简单,找对方法是关键。
找到无风的o点,然后开始推路径,然后将能到的点设为true,最后统计TRUE的个数就AC
#include<iostream> using namespace std; int i,j,n,m,num; char a[1002][1002]; bool b[1002][1002]; void gui(int i,int j) //推路径 { b[i][j]=true; //将这点记为true if(a[i+1][j]=='u') gui(i+1,j); if(a[i-1][j]=='d') gui(i-1,j); if(a[i][j+1]=='l') gui(i,j+1); if(a[i][j-1]=='r') gui(i,j-1); } int main() { //freopen("Lsan.in","r",stdin); //freopen("Lsan.out","w",stdout); cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(a[i][j]=='o') gui(i,j); //如果是无风点,则开始推路 for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(b[i][j]) num++; //统计个数 cout<<num<<'\n'; //个人习惯,喜欢打换行符 //fclose(stdin);fclose(stdout); //system("pause"); return 0; }
- 1
信息
- ID
- 881
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者