2022-09-05:作为国王的统治者,你有一支巫师军队听你指挥。
:给你一个下标从 0 开始的整数数组 strength ,
其中 strength[i] 表示第 i 位巫师的力量值。
对于连续的一组巫师(也就是这些巫师的力量值是 strength 的 子数组),
总力量 定义为以下两个值的 乘积 :
巫师中 最弱 的能力值 * 组中所有巫师的个人力量值 之和 。
请你返回 所有 巫师组的 总 力量之和。由于答案可能很大,请将答案对 109 + 7 取余 后返回。
子数组 是一个数组里 非空 连续子序列。

答案2022-09-05:

单调栈。

代码用rust编写。代码如下:

fn main() {let mut arr = vec![1, 3, 1, 2];let ans = total_strength(&mut arr);println!("ans = {}", ans);
}const mod0: i64 = 1000000007;fn total_strength(arr: &mut Vec<i32>) -> i32 {let n = arr.len() as i32;let mut pre_sum = arr[0] as i64;let mut sum_sum: Vec<i64> = vec![];for _ in 0..n {sum_sum.push(0);}sum_sum[0] = arr[0] as i64;for i in 1..n {pre_sum += arr[i as usize] as i64;sum_sum[i as usize] = (sum_sum[(i - 1) as usize] + pre_sum) % mod0;}let mut stack: Vec<i32> = vec![];for _ in 0..n {stack.push(0);}let mut size: i32 = 0;let mut ans: i64 = 0;for i in 0..n {while size > 0 && arr[stack[(size - 1) as usize] as usize] >= arr[i as usize] {size -= 1;let m = stack[size as usize];let l = if size > 0 {stack[(size - 1) as usize]} else {-1};// l(<当前值,且最近,到不了)        m(当前数,做为最小值)      i(<=当前数,到不了的!)ans += magic_sum(arr, &mut sum_sum, l, m, i);ans %= mod0;}stack[size as usize] = i;size += 1;}while size > 0 {size -= 1;let m = stack[size as usize];let l = if size > 0 {stack[(size - 1) as usize]} else {-1};ans += magic_sum(arr, &mut sum_sum, l, m, n);ans %= mod0;}ans as i32
}fn magic_sum(arr: &mut Vec<i32>, sum_sum: &mut Vec<i64>, l: i32, m: i32, r: i32) -> i64 {let left = (m as i64 - l as i64)* (sum_sum[(r - 1) as usize]- if m - 1 >= 0 {sum_sum[(m - 1) as usize]} else {0}+ mod0)% mod0;let right = (r as i64 - m as i64)* (if m - 1 >= 0 {sum_sum[(m - 1) as usize]} else {0} - if l - 1 >= 0 {sum_sum[(l - 1) as usize]} else {0} + mod0)% mod0;return arr[m as usize] as i64 * ((left - right + mod0) % mod0);
}

执行结果如下:


左神java代码

2022-09-05:作为国王的统治者,你有一支巫师军队听你指挥。 :给你一个下标从 0 开始的整数数组 strength , 其中 strength[i] 表示第 i 位巫师的力量值。 对于连续的一相关推荐

  1. 543、RabbitMQ详细入门教程系列 -【Confirm与Mandatory】 2022.09.05

    目录 一.前言概述 二.SpringAMQP配置Confirm 2.1 Connection设置 2.2 template设置 2.3 Confirm实现 三.SpringAMQP配置ManDator ...

  2. 544、RabbitMQ详细入门教程系列 -【手动消费确认】 2022.09.05

    目录 一.前言概述 二.配置实现 2.1 XML配置 2.2 MessageListener实现 三.消息预取 四.并发消费 五.参考链接 一.前言概述 RabbitMQ(四) --消费者Consum ...

  3. [C] 跨平台使用Intrinsic函数范例3——使用MMX、SSE2指令集 处理 32位整数数组求和...

    作者:zyl910. 本文面对对SSE等SIMD指令集有一定基础的读者,以32位整数数组求和为例演示了如何跨平台使用MMX.SSE2指令集.支持vc.gcc编译器,在Windows.Linux.Mac ...

  4. 2022.09.29 周四

    2022.09.29 周四 回顾 元组 容器:(数据1,数据2,数据3,--) 不可变的:有序的 元素:没有要求 集合 容器:{数据1,数据2,数据3,--} 可变的:无序的: 元素:不可变的数据:唯 ...

  5. 2022.09 青少年软件编程(图形化) 等级考试试卷(四级)

    2022.09 青少年软件编程(图形化) 等级考试试卷(四级) 分数: 100 题数: 29 一. 单选题(共 15 题, 共 30 分) 1.运行下列程序,说法正确的是?() A.列表中的数字全部小 ...

  6. 【2022.09.04】关于升级打怪学编程活动的通知

    把电子学会全国青少年软件编程等级考试作为游戏的关卡,带着小朋友们升级打怪. 升级打怪计划 每周日晚20:00,我在腾讯会议中进行直播答疑,解决小朋友们本周遇到的编程问题,辅助小朋友们提升编程的技能. ...

  7. 2022.09 青少年Python等级考试(六级) 编程题部分

    2022.09 青少年Python等级考试   编程题部分(共3题,共30分) 36.小明编写一个类实现设置马的品种.年龄.性别及速度,输出相应的语句,请补全代码. 如下代码输出结果为"一匹 ...

  8. 2022.09 青少年Python等级考试(六级) 选择题部分

    2022.09 青少年Python等级考试(六级) 选择题部分 一.单选题(共25题,共50分) 1.以下关于Python二维数据的描述中,错误的是?( A ) A. 表格数据属于二维数据,由整数索引 ...

  9. Dapr中国社区活动之 分布式运行时开发者日 (2022.09.03)

    自2019年10月首次发布以来,Dapr(Distributed Application Runtime,分布式应用运行时)因其"更稳定"."更可靠".&quo ...

最新文章

  1. 知方可补不足~SQL中的count命令的一些优化措施(百万以上数据明显)
  2. 日志切割之Logrotate
  3. vant 下拉框样式_使用 Vue 的 Vant.js List 列表组件实现无限下拉
  4. python入门之函数调用第二关_Python入门之函数调用——第2关:函数正确调用 - 得到想要的结果...
  5. php-学通PHP的24堂课-设置PHP的系统当前时间
  6. 调参心得:超参数优化之旅
  7. os.system 获取打印值_react获取触发元素的属性 e.target.dataset
  8. ImageJ如何获取图片RGB强度和灰度值
  9. 种草平台--持续更新
  10. R语言中predict函数之logistic建模
  11. 关于组件之间使用provide和inject传值
  12. CAD参数绘制文字(网页版)
  13. html平板电脑打不开,苹果平板电脑浏览器打不开网页
  14. 颜色直方图, HSV直方图, histogram bins
  15. 学生积分管理系统改进-python
  16. openssl 自制国密证书
  17. 把 html标签转化为 html标签代码
  18. JUST技术:当我停留时我在干什么
  19. 华硕B85M-V PLUS 刷NVME协议BIOS
  20. 0403分部积分法-不定积分

热门文章

  1. Chrome下最简分页打印方案
  2. 长期佩戴耳机有危害,千万别不当一回事
  3. 硬核科技加持!红魔5S为手游玩家带来电竞级体验
  4. 2009年11月2日
  5. 我为什么在22岁辞去年薪150万的工作
  6. 《网站建设网页制作》精品课
  7. 电脑平时好好的,今天连上了wifi,浏览器却加载不出网页,解决措施。
  8. jgs--多线程和synchronized
  9. 2022年全球市场牛初乳总体规模、主要生产商、主要地区、产品和应用细分研究报告
  10. android 天气软件的动态天气效果怎么实现的,超炫动态效果的安卓天气软件 《GO天气》...