1 条题解

  • 0
    @ 2024-6-12 18:52:15

    典型的暴力模拟往往只需要最简单的思路: 前面的输入部分很基础,不会的同学们多做一些循环输入,代码如下:

    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

    [GESP样题 七级] 迷宫统计

    信息

    ID
    654
    时间
    1000ms
    内存
    128MiB
    难度
    9
    标签
    递交数
    8
    已通过
    7
    上传者