技巧:
单维度套路贪心
思路:
--------- A B --------- 改变A B 的顺序对前面和后面没人影响
实现:
package main
import (
"fmt"
"sort"
)
type Cow struct {
t,d int
}
func main() {
var n int
fmt.Scan(&n)
c := make([]Cow, n)
for i := 0; i < n; i ++ {
fmt.Scan(&c[i].t,&c[i].d)
}
sort.Slice(c, func(i, j int) bool { return c[i].d * c[j].t > c[i].t * c[j].d})
preTSum := c[0].t << 1
ans := 0
for i := 1; i < n; i ++ {
ans += preTSum * c[i].d
preTSum += c[i].t << 1
}
fmt.Println(ans)
}

京公网安备 11010502036488号