关于本题n^3算法吸氧能水过$10^3$的疑问
查看原帖
关于本题n^3算法吸氧能水过$10^3$的疑问
321068
安舒阳楼主2022/11/12 23:02

不吸氧一分没有,吸了氧满分,氧气是怎么做到的?

#include<bits/stdc++.h>
using namespace std;
int f[5][1005][1005]; 
int data[1005];
int main(){
	//初始化 
	memset(f,0x3f,sizeof(f));
	for(int i=0;i<=1005;i++){
		f[0][i][i]=0;
	}
	
	//输入 
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&data[i]);
	}
	for(int i=0;i<m;i++){//这里其实只有m条,m并不进行存储,所以从1开始和从0开始没区别 
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		
		f[0][a][b]=min(f[0][a][b],c+data[b]);
		f[0][b][a]=min(f[0][b][a],c+data[a]);
	}
		
	//最短路模板 
	for(int k=1;k<=n;k++){
		for(int x=1;x<=n;x++){
			for(int y=1;y<=n;y++){
				f[k%2][x][y]=min(f[(k-1)%2][x][y],f[(k-1)%2][x][k]+f[(k-1)%2][k][y]);
			}
		}
	}
		
	printf("%d",f[n%2][1][n]-data[n]);
	return 0;
}
2022/11/12 23:02
加载中...