1 条题解
-
0
典型的暴力模拟往往只需要最简单的思路: 前面的输入部分很基础,不会的同学们多做一些循环输入,代码如下:
cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>a[i][j];//输入就不用多说了吧? // 切记,1是能走到的,0是不能的,和有些题有略微不一样。 } }
然后呢就开始处理这个迷宫,我们已经知道这个迷宫的含义,所以第一个这么处理。
for(int i=1;i<=n;i++) { if(a[m][i]==1)//这个是m号迷宫可以直接去的。 { ans2++;//能去就加上。 } }
那么第二个只需要简单改一下就行了:
for(int i=1;i<=n;i++) { if(a[i][m]==1)//这是能去m号迷宫的 。 { ans1++;//能去就算。 } }
所以再把输出加上,就差不多了,直接上代码:
#include<bits/stdc++.h>//万能头。 using namespace std; int n,m;//n个迷宫,出发地点m 。 int a[1005][1005];//各个迷宫之间的关系。 int ans1,ans2;//2是m号直接能去的迷宫,1是能去m号迷宫的迷宫。 //这里也要注意看题,不要写反了!! int main() { cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>a[i][j];//输入就不用多说了吧 。 } } for(int i=1;i<=n;i++) { if(a[i][m]==1)//判断能不能去 。 { ans1++;//能去就算。 } } for(int i=1;i<=n;i++) { if(a[m][i]==1)//反过来其实是一样的。自己理解一下 。 { ans2++; } } cout<<ans2<<" "<<ans1<<" ";//先输出两个答案,千万要注意,不要写反了!!!! cout<<ans1+ans2;//最后输出总和 。 }
- 1
信息
- ID
- 654
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 11
- 已通过
- 9
- 上传者