存在一些精度差距
查看原帖
存在一些精度差距
606710
dzy5551012楼主2022/8/24 21:15

先上代码

for(int i=1;i<=n;i+=2){
	for(int j=1;j<=m;j+=2){
		if(flag2&&j>m/2)++j,flag2=0;
		if(flag1&&i>n/2)++i,flag1=0;
		int I=i,J=j;
//ans+=sqrtl((max(((i-1)*(i-1)+(j-1)*(j-1)),((n-i)*(n-i)+(j-1)*(j-1))),max(((i-1)*(i-1)+(m-j)*(m-j)),((n-i)*(n-i)+(m-j)*(m-j)))));
		ans+=max(max(hypot(I-1,J-1),hypot(I-1,m-J)),max(hypot(n-I,J-1),hypot(n-I,m-J)));
			}
		}

第一种

		for(int i=1;i<=n;i+=2){
			for(int j=1;j<=m;j+=2){
				int I=i,J=j;
				if(flag2&&j>m/2)++J;
				if(flag1&&i>n/2)++I;
				//cout<<"I"<<i<<" J"<<j<<"ans"<<ans<<endl;
				ans+=max(max(hypot(I-1,J-1),hypot(I-1,m-J)),max(hypot(n-I,J-1),hypot(n-I,m-J)));
			}
		}

第二种 为什么第一种方法(包括注释掉的那种)会比第二种精度差一些啊(没有通过后两个Subtask) 求助orz

2022/8/24 21:15
加载中...