随笔 - 46  文章 - 0  评论 - 0  阅读 - 507 

1.Teleporters(Hard Version)

1. 题意:

有 n+2 个位置:0~n+1,给定n个数a1an ,有以下操作:

  • 向左/右移动一格,代价为 1。
  • 传送回 0 位置或者 n+1 位置,记你当前的位置为 i,则代价为ai。每个位置只能发动一次传送。
    求最大传送次数

2. 思路:

因为每次传送都会回到0/n+1号点,所以,到达i点并传送的代价为 min{i,n+1-i}+ai .
按照代价升序排序,从小到大取。
此时发现,第一次传送时,只能从0出发,会导致错误。
枚举第一个点为fir,代价为 fir+afir .
二分答案mid,表示传送mid+1次,此时总代价为:

  • fir<mid : (i=1midmin(i,n+1i)+ai)+fir+afir
  • firmid : (i=1mid+1min(i,n+1i)+ai)min(fir,n+1fir)+afir+fir+afir
    判断即可

3. 时间复杂度

排序: O(nlogn)
枚举&二分 O(nlogn)
O(nlogn)

2.给树染色

1. 题意:

一颗树有n个节点,点有点权.现要将这棵树染色,对于任意节点,在被染色之前它的父亲节点必须已经染上了色。
每次染色的代价为 TA[i],其中T代表当前是第几次染色。
求把这棵树染色的最小总代价。

2. 思路:

将点权最大的点不断与其父节点合并,合并后新点点权为i=1naNi/n
证明合并后新点点权为i=1naNi/n
设有两个已合并点级N,M

  • 交换前,染色代价为:
    i=1naNi(T+i) + i=1maMi(T+n+i)
  • 交换后,染色代价为:
    i=1naNi(T+m+i) + i=1maMi(T+i)
    差为
    i=1maMini=1naNim
    大于零
    i=1maMin>i=1naNim
    i=1maMi/m>i=1naNi/n
    故合并后点权为
    i=1naNi/n

3. 时间复杂度

set维护 O(nlogn)

posted on   Grylls_117  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示