牛客网【每日一题】7月21日题目精讲—区间权值
来源:牛客网:
区间权值
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 1048576K,其他语言2097152K
64bit IO Format: %lld
题目描述
输入描述:
第一行一个正整数 n
第二行 n 个正整数 a1…an
第三行 n 个正整数 w1…wn
输出描述:
输出答案对 109+7 取模后的值
示例1
输入
复制
3
1 1 1
1 1 1
输出
复制
10
备注:
1≤ n≤ 3x 105 1≤ ai≤ 107 1≤ wi≤ 107
题解:
吐槽一下,官方题解有点小错误,应该是打错了。。。
题目是求公式,我们将式子化简:
for(l = 1–>n)
for(r = l -->n)
f(l,r)
f(1,1)+f(1,2)…+f(1,n)
+f(2,2)+f(2,3)+…+f(2,n)
+…
+f(n,n)
我们再拆一下:
a1w1+(a1w2+a2w2)+(a1+a2+a3)w3+.(a1+a2+…+an)wn
+a2w1+(a2+a3)w2+…+(a2+a3+…+an)w(n-1)
+…
是不是感觉有点规律了
我们用sum[]来求前缀和,这样括号里面都可以用sum来表示
然后我们将所有w1合并,将所有w2合并,能得到:
(sum[1]-sum[0]+sum[2]-sum[1]+sum[3]…+sum[n]-sum[n-1])w1=(sum[n]-sum[0])w1
w2也合并:(sum[n]+sum[n-1]-sum[1]-sum[0])w2=(sum[n]-sum[0])+sum[n-1]-sum[1]
…
wi的系数就是sum[n-i+1]-sum[i-1]+wi-1的系数
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=3e5+9;
const int mod=1e9+7;
ll w[300004],sum[maxn],a[maxn];
int main()
{int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];sum[i]=(sum[i-1]+a[i])%mod;}for(int i=1;i<=n;i++)cin>>w[i];ll ans=0;ll tot=0;for(int i=1;i<=n;i++){tot=(tot+(sum[n-i+1]-sum[i-1]+mod)%mod)%mod;ans=(ans+tot*w[i]%mod)%mod;}cout<<ans;}
牛客网【每日一题】7月21日题目精讲—区间权值相关推荐
- 牛客网 每日一题 7月23日题目精讲—wpy的请求
来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...
- 牛客网【每日一题】4月21日题目精讲 糖糖别胡说,我真的不是签到题目
试题 糖糖别胡说,我真的不是签到题目 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K, 其他语言262144K 64bit IO Format:%lld 题目描述 从前 ...
- 【牛客每日一题】tokitsukaze and Soldier 题目精讲 贪心、优先队列、堆
链接:https://ac.nowcoder.com/acm/problem/50439 来源:牛客网 ACM在线模板 今天才发现牛客推出了一个每日一题的版块,3月25号就开始了,今天才发现,赶紧补救 ...
- 【每日一题】8月28日题目精讲 编号
[每日一题]8月28日题目精讲 编号 链接:https://ac.nowcoder.com/acm/problem/19925 来源:牛客网 题目描述 你需要给一批商品编号,其中每个编号都是一个7位1 ...
- 【每日一题】7月17日题目精讲—BOWL 碗的叠放
[每日一题]7月17日题目精讲-BOWL 碗的叠放 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld ...
- 【每日一题】7月15日题目精讲—生日快乐
[每日一题]7月15日题目精讲-生日快乐 [SCOI2009]生日快乐 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO For ...
- 【每日一题】7月13日题目精讲—Kingdom
[每日一题]7月13日题目精讲-Kingdom 文章目录 题目描述 题解: 代码: 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 1048576K,其他语言2097152K 64bi ...
- 牛客网【每日一题】4月14日题目精讲 Xorto
文章目录 题目描述 题解: 代码: 扩展 传送 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format:%lld 题目描述 ...
- 牛客网 【每日一题】8月5日题目精讲—蓝魔法师
来源:牛客网: 文章目录 题目描述 题解: 代码: 题目描述 "你,你认错人了.我真的,真的不是食人魔."–蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于 ...
最新文章
- 服务器邮箱备份文件在哪里,如何轻松将数据文件备份到电子邮箱?
- 牛津花卉数据集贴标签分类
- 科学计算机乱码,软件界面乱码可以这么“破”
- Android 功耗(11)---如何测试 Mediatek 平台各个场景的功耗数据?
- MTK 驱动开发(35)---待机功耗分析流程
- Nginx源码阅读 ---- 模块的初始化
- apktook 反编译错误
- numpy库学习总结
- ERP实施过程中的沟通管理研究
- 怎么查看自己电脑的iP地址,3个方法推荐
- Time Limit Exceeded的原因及避免方法
- [bigdata] 基于docker 打开hadoop
- 树莓派远程4G遥控车教程(二)-相机云台舵机初步调试
- Android源码阅读工具AndroidXRef使用说明
- java 数组声明并初始化_Java数组的声明与初始化
- 嵌入式--RTC实时时钟原理及相关库函数功能
- JSP实现登录注册并链接数据库页面
- Fabric 1.0源代码分析(23)LevelDB(KV数据库)
- android自学视频!2021年Android进阶者的新篇章,附面试题答案
- Styles.Rende @Scripts.Render 错误
热门文章
- 重磅!Nature盘点年度十佳论文,生命科学占据半壁江山,中国学者表现亮眼
- 快速掌握MATLAB应用,只要从这一步开始!
- 论文排版怕翻车?这个排版神器赶紧用起来!
- 全国胸最小的省是哪个,你知道吗?| 今日最佳
- 国庆中秋活动——读完这两套书,宝宝就变小小物理学家了!
- 怎样安装python在桌面_在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程...
- vue 3.0 正式版_Vuejs 3 Release:One Piece. Vuejs 3.0 正式版发布!代号:海贼王
- java new 面试_java面试30问
- python反射、闭包、装饰器_python之闭包、装饰器、生成器、反射
- Java使用TCP实现群聊 聊天室(多线程和tcp的使用)