Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        4年前关闭。
                                                                                            
                
        
c程序打印将谣言按矩阵散布到m * n矩阵所在的所有房屋所需的最少天数。将谣言从一所房屋传到其他谣言只需要一天,就只能水平或垂直传播
这是我编写的代码,但在更高的输入下可能不正确.1
这是我的代码

  #include<stdio.h>
int main()
{
  long m,n,days;
  scanf("%ld",&m);
        scanf("%ld",&n);
  if(m<1||m>1000000||n<1||n>1000000)
    return 0;
  if(m==2&&n==2)
    printf("3");
  else
        if((m+n)%2==0)
        days=(m+n)/2;
        else
        days=(m+n)/2+1;
        printf("%ld",days);
        return 0;
        }

最佳答案

谣言传播的最快方式是当谣言在矩阵的中间开始时。

由于它只能水平或垂直移动,因此如果从中间开始,则在最坏的情况下将需要m/2 + n/2天的时间才能到达某个角落。

只需尝试使用此printf("%d\n",m/2+n/2);即可。

注意:如果必须包括起始日的天数,则加1。

10-06 03:35