P3932 浮游大陆的68号岛
P3932 浮游大陆的68号岛
题意
第二行
有
dist
就是仓库间的距离。
之后 x l r
表示查询要把区间
对于100%的数据 ,
您的答案需要对19260817取模。
解法
首先把题意转换成数学形式化语言:
对于一次查询,我们的花费是:
其中
发现有绝对值,那么就需要我们对
此时
我们设
则式子变为:
可以
与1
的情况同理,可以得到计算式为:
答案可以看成:
化简后可以得到:
那么我们只要预处理出
code:
#include<iostream>
#include<algorithm>
using namespace std;
const int MOD = 19260817;
const int MAXN = 2e5 + 1;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
inline void write(int x){if(x<0)putchar('-'),x=-x;if(x>9)write(x/10);putchar(x%10+'0');return;}
int n,m;
int d[MAXN];
int a[MAXN];
long long prea[MAXN],pre[MAXN];
long long aaa[MAXN];
int xx,ll,rr;
int ans = 0;
int solve(int x,int l,int r){
ans = 0;
if(x <= l){
ans = ((ans + prea[r] - prea[l - 1]) % MOD + MOD) % MOD;
ans = (((ans - pre[x] * aaa[r]) % MOD + MOD) % MOD + pre[x] * aaa[l - 1]) % MOD;
}else if(x >= r){
ans = ((ans + pre[x] * (aaa[r] - aaa[l - 1])) % MOD + MOD) % MOD;
ans = ((ans - (prea[r] - prea[l - 1])) % MOD + MOD) % MOD;
}else{
ans = ((ans + pre[x] * aaa[x] - pre[x] * aaa[l - 1] % MOD) + MOD) % MOD;
ans = ((ans - (prea[x] - prea[l - 1])) % MOD + MOD) % MOD;
ans = ((ans + prea[r] - prea[x - 1]) % MOD + MOD) % MOD;
ans = ((((ans - pre[x] * aaa[r]) % MOD + MOD) + pre[x] * aaa[x - 1]) % MOD + MOD) % MOD;
}
return ans;
}
int i;
signed main(){
n = read();m = read();
for(i = 1;i < n;i++) d[i] = read(),d[i] %= MOD;
for(i = 1;i <= n;i++) a[i] = read(),a[i] %= MOD;
for(i = 1;i <= n;i++) aaa[i] = (aaa[i - 1] + a[i]) % MOD;
for(i = 1;i <= n;i++) pre[i] = (pre[i - 1] + d[i - 1]) % MOD;
for(i = 1;i <= n;i++) prea[i] = (prea[i - 1] + (pre[i] * a[i])) % MOD;
for(i = 1;i <= m;i++){
xx = read(),ll = read(),rr = read();
write(solve(xx,ll,rr));
printf("\n");
}
return 0;
}
本文来自博客园,作者:wyl123ly,转载请注明原文链接:https://www.cnblogs.com/wyl123ly/p/18468478
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!