求调,玄双关
  • 板块学术版
  • 楼主MAX_CURRY_JAMES
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/7/23 10:22
  • 上次更新2025/7/23 15:03:34
查看原帖
求调,玄双关
796776
MAX_CURRY_JAMES楼主2025/7/23 10:22

题目

代码:

#include<bits/stdc++.h>
//#define int long long
//#pragma GCC optimize(2,"Ofast","inline")
using namespace std;
int T,n,a[105][105],cnt,sum,t;
double cnt1,sum1,cnt2,sum2;
char x;
int ans1,ans2,ans3;
double f,f1,f2,f3;
signed main(){
	scanf("%d",&T);
	t=T;
	while(T--){
		scanf("%d",&n);
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++)
			{
				cin>>x;
				if(x!='.') a[i][j]=(x-'0'+1);
			}
		}
		printf("Case #%d:\n",t-T);
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i==j) continue;
				if(a[i][j]==0) continue;
				cnt++,sum+=a[i][j]-1;
				for(int k=1;k<=n;k++){
					if(k!=j&&a[j][k]!=0) cnt1++,sum1+=a[j][k]-1;
					for(int i1=1;i1<=n;i1++)
					if(k!=i1&&a[k][i1]!=0) cnt2++,sum2+=a[k][i1]-1;
					f1+=double(sum2/cnt2)*1.0,sum2=0,cnt2=0,ans1++;
				}
				f2+=double(sum1/cnt1)*1.0,sum1=0,cnt1=0,ans2++;
			}
			f1=double(f1/ans1)*0.25,f2=double(f2/ans2)*0.25;
			f=double(sum/cnt)*1.0*0.5+f1+f2,sum=0,cnt=0;
			cout<<double(f)<<'\n';
			f=0.0;
		}
	}
}

2025/7/23 10:22
加载中...