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