C. Line Empire_思维dp
C. Line Empire
题目大意:
在一个数轴上,首都一开始在0位置,给出n在不同位置的城市。可以采取两种行动:
1)占领城市。前提是这两个城市之间没有未占领的城市,花费a*|di-dj|。
2)移动首都。将首都移动到任意已经占领的城市,花费b*| di-dj|。
问占领所有城市的最小花费。
思路和代码:
一拿到就觉得是dp啊,但是一看属于2e5,怎么D哇...想着先D着,D出来再优化。还是D不出来...
看一看题解发觉只要枚举首都所在的最后位置即可。
void solve(){
ll n , a , b ;
cin >> n >> a >> b ;
vct<ll> x(n + 1 , 0) ;
vct<ll> p(n + 1 , 0) ;
rep(i , 1 , n) cin >> x[i] ;
rep(i , 1 , n) p[i] = x[i] + p[i - 1] ;
ll ans = b * p[n] ;//首都在0没动
rep(i , 1 , n){//枚举最终首都位置
ll res = 0 ;
res += (p[n] - p[i] - x[i] * (n - i)) * b ;
res += x[i] * (a + b) ;
ans = min(ans , res) ;
}cout << ans << "\n" ;
}//code_by_tyrii
小结:
难想,太蒟了我555
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端