测了半天一直WA#2一个点......
查看原帖
测了半天一直WA#2一个点......
1230733
snkkkts楼主2024/6/17 00:51
package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

func Run(_r io.Reader, _w io.Writer) {
	in := bufio.NewReader(_r)
	out := bufio.NewWriter(_w)
	defer out.Flush()

	const INF = int(0x1f1f1f1f)
	var n, m, u, v, w int
	fmt.Fscan(in, &n, &m)

	dis := make([][]int, 128)
	mp := make([][]int, 128)
	for i := 0; i < len(dis); i++ {
		dis[i] = make([]int, 128)
		mp[i] = make([]int, 128)
	}

	for i := 1; i <= n; i++ {
		for j := 1; j <= n; j++ {
			if i != j {
				dis[i][j], mp[i][j] = INF, INF
			}
		}
	}

	for i := 0; i < m; i++ {
		fmt.Fscan(in, &u, &v, &w)
		dis[u][v] = w
		dis[v][u] = w
		mp[u][v] = w
		mp[v][u] = w
	}

	hasSolution := false
	ans := INF

	for k := 1; k <= n; k++ {
		for i := 1; i < k; i++ {
			for j := i + 1; j < k; j++ {
				ans = min(ans, dis[i][j]+mp[i][k]+mp[k][j])
				hasSolution = true
			}
		}
		for i := 1; i <= n; i++ {
			for j := 1; j <= n; j++ {
				dis[i][j] = min(dis[i][j], dis[i][k]+dis[k][j])
				dis[j][i] = dis[i][j]
			}
		}
	}
	if !hasSolution {
		fmt.Fprintln(out, "No solution.")
	} else {
		fmt.Fprintln(out, ans)
	}
}

func main() {
	Run(os.Stdin, os.Stdout)
}

怎会如此,用python写的一样的就能AC......

2024/6/17 00:51
加载中...