题解 | #[USACO 2007 Jan S]Protecting the Flowers#

技巧:
    单维度套路贪心
思路:
    --------- 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)
}




全部评论

相关推荐

03-10 10:57
已编辑
门头沟学院 推荐算法
夜夜还好:我们学校说为了学生就业,更新了课程,我今天大二,上学期在学jsp,html,这学期上来工程实践,要求用springboot+vue,说什么这些技术要我们提前自己准备,要不你把学费还我吧,我给b站充个会员,人家教的比你多
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务