当前位置: 首页 > news >正文

微信群如何推广网站建设网络架构指什么

微信群如何推广网站建设,网络架构指什么,猫猫 wordpress,创办一个网站传送门 题意: 有 n 个怪兽需要消灭,它们的生命值分别是 h [1],h [2]......h [n]. 我们可以使用两种技能: 技能 1:选择任意一个怪兽,使其生命值降低 1 点,并且需要 1 点能量值. 技能 2:选择任意…

传送门

题意:

有 n 个怪兽需要消灭,它们的生命值分别是 h [1],h [2]......h [n].

我们可以使用两种技能:

技能 1:选择任意一个怪兽,使其生命值降低 1 点,并且需要 1 点能量值.

技能 2:选择任意一个怪兽,使其生命值降低 x 点,需要花费 x 点能量值.

如果使用技能 2之后消灭了被选择的怪兽,那么会接着对其相邻的怪兽造成 h[ i ] - 1点伤害值. 注意:技能 2 只能使用一次!

问题:

消灭所有的怪兽最少需要花费多少能量值 ?

思路:

假设把第 i 个怪兽作为Explosion的目标,那么要求 h[1] -> h[ i ] 变成严格单调递增,h[ i ] -> h[ n ]变成严格单调递减.

我们称把 1~ i 的生命值修改为严格单调递增的代价为 L[ i ],i 到 n 的生命值修改为严格单调递减的代价是 R[ i ].

那么答案就是 min {L[ i ] + R[ i ] + h[ i ] },那么现在,问题变成了如果求出 L[ i ] 和 R[ i ].

我们只需要考虑如果求出 L[ i ]即可,因为R[ i ]可以用类似的方法求得.

考虑一个经典技术:单调栈.

做法:

单调栈:

从左到右扫一遍过去.

栈中维护一个二元组(hi,cnt)表示当前有一个怪兽血量为h[ i ],在它左边有 cnt - 1个怪兽,它们的血量从左到右单调递增且差值为 1.

栈中 h[ i ]严格单调递增.

当扫描到 i 时,实时维护一个sum,表示当前的L[ i ],如果h[ i ] > 栈顶的 h,则L[ i ] = sum,并将(hi,1)加入栈,否则,要把栈顶的(h,cnt)这cnt 个怪兽的血量全部减去 h - hi +1,才能满足条件,我们把原先的栈顶 pop.

重复这个过程,直到栈为空或者 hi > 栈顶的 h,最终,我们将(hi,cnt1)加入栈,这里的cnt1表示 1 + pop出来的cnt的和.

参考代码:

#include <bits/stdc++.h>using LL = long long;int main() {std::ios::sync_with_stdio(false);std::cin.tie(nullptr);int t;std::cin >> t;while (t--) {int n;std::cin >> n;std::vector<int> h(n);for (int i = 0; i < n; i++) {std::cin >> h[i];}std::vector<LL> L(n);std::vector<LL> R(n);for (int rot = 0; rot < 2; rot++) {std::vector<std::pair<LL, LL>> st;LL sum{};for (int i = 0; i < n; i++) {LL cnt = 1;while (!st.empty() && h[i] - cnt < st.back().first) {LL diff = st.back().first - (h[i] - cnt);sum += diff * st.back().second;cnt += st.back().second;st.pop_back();}if (cnt - 1 > h[i]) {LL extra = cnt - 1 - h[i];sum -= extra * (extra + 1) >> 1;cnt = h[i];}L[i] = sum;st.emplace_back(h[i], cnt);}std::reverse(L.begin(), L.end());std::reverse(R.begin(), R.end());std::reverse(h.begin(), h.end());std::swap(L, R);}LL ans = (LL)1e18;for (int i = 0; i < n; i++) {ans = std::min(ans, L[i] + R[i] + h[i]);}std::cout << ans << '\n';}return 0;
}
http://www.yayakq.cn/news/353052/

相关文章:

  • 深圳企业网站公司网站建设意见征求
  • 做摄影网站公司福建省高速公路建设管理网站
  • 加盟网官方网站制作高端网站效果怎么样
  • 网站正在建设中图片seo网站推广有哪些
  • 免费个人网站制作军事新闻视频在线观看
  • wordpress微博登录注册荆门seo
  • 中铁建设集团官方网站画流程图的网站
  • 廊坊网站排名优化价格设计制作内容
  • 百度推广需要备案的网站吗dw做的网站与浏览器不匹配
  • 用wex5可以做网站吗广州建站代运营公司有哪些
  • 做网站利用自己电脑it外包有哪些
  • 福州贸易公司网站制作查网站是否备案
  • 用dw做一个个人网站免费24小时咨询医生
  • 学习网页设计的网站上海三大设计院
  • 建网站视频教程做网站卖多少钱一个
  • 文化网站建设需要的功能网站开发欠款
  • 查公司备案网站备案建筑通
  • 河南建设教育协会网站企业软件定制开发报价
  • 企业网站系统详细设计最近的广告公司
  • 网站建设公司企业模板网站建设管理流程
  • 广州企立科技做网站网站域名icp 备案价格
  • 广州建网站哪家好58同城如何发广告
  • 中国站长wordpress主题 仿蛋花
  • 网站开发过程总结国内成熟的crm系统
  • 阿里巴巴国际站网页设计教程文学网站开发
  • 松江区环保局网站建设项目备案山西旅游网站建设
  • 如何网站开发wordpress 设置导航
  • 网站文案设计目前上海有几个区
  • 云南建设网站澜沧项目手机功能网站案例
  • 张家界网站建设多少钱wordpress 编辑器引用