有关于这道题的输入逻辑
查看原帖
有关于这道题的输入逻辑
1389794
Lei_ZT楼主2025/7/19 15:02

先看原文

输入格式 第一行一个整数 n。

第 i+1 行(1≤i≤n)有 n+1−i 个整数,表示每一种询问所需的花费。

其中 c ij ​ (对区间 [i,j] 进行询问的费用,1≤i≤j≤n)为第 i+1 行第 j+1−i 个数。

我的看法

由于一开始已经输入了n(占了一行),所以原文在措辞中才使用“第 i+1 行(1≤i≤n)有 n+1−i 个整数,表示每一种询问所需的花费。” 既然如此,那为什么不是这样建边

for(int i=1;i<=n;i++){
		for(int j=i;j<=n;j++){
			cin>>z;
			add(i,j,z);
			add(j,i,z);
		}
		d[i]=INF;
	}

而是这样

for(int i=1;i<=n;i++){
		for(int j=i;j<=n;j++){
			cin>>z;
			add(i-1,j,z);
			add(j,i-1,z);
		}
		d[i]=INF;
	}
2025/7/19 15:02
加载中...