linklinklink

分析:

前缀和
sumisum_isumi​表示 将仓库1−i1-i1−i所有物品转移到111号仓库花费
sum2isum2_isum2i​表示 将仓库1−i1-i1−i所有物品转移到nnn号仓库花费
disidis_idisi​表示iii号仓库到111号仓库距离
numinum_inumi​表示仓库1−i1-i1−i物品总个数

分333种情况:

  1. xxx在lll左边
  2. xxx在rrr右边
  3. xxx在l,rl,rl,r之间

情况1:1:1:运用区间和 算出将[l,r][l,r][l,r]物品运到111号仓库花费 再减多余的[1,x][1,x][1,x]花费
情况222用sum2sum2sum2数组 同理
情况333 将[l,r][l,r][l,r]拆成[l,x][l,x][l,x] [x,r][x,r][x,r] 然后和上面一样计算

减去多余花费最好用dis×numdis\times numdis×num 因为用sumsumsum直接算的话 还要处理[x,l][x,l][x,l] [r,x][r,x][r,x]的花费总和

要不断取modmodmod 以及因为是减法取modmodmod 出现负数要加回去

CODE:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=2e5+5,Mod=19260817;
int n,m;
ll a[N],dis[N],sum[N],sum2[N],num[N];
ll toL(int x,int l,int r){return ((sum[r]-sum[l-1])%Mod-(num[r]-num[l-1])*dis[x]%Mod+Mod)%Mod;}
ll toR(int x,int l,int r){return ((sum2[r]-sum2[l-1])%Mod-(num[r]-num[l-1])*(dis[n]-dis[x])%Mod+Mod)%Mod;}
int main(){scanf("%d%d",&n,&m);for(int i=2;i<=n;i++){scanf("%lld",&dis[i]);(dis[i]+=dis[i-1])%=Mod;}for(int i=1;i<=n;i++){scanf("%lld",&a[i]);num[i]=(num[i-1]+a[i])%Mod;sum[i]=(a[i]*dis[i])%Mod;sum2[i]=(a[i]*(dis[n]-dis[i]))%Mod;}sum[1]=sum2[n]=0;for(int i=1;i<=n;i++){(sum[i]+=sum[i-1])%=Mod;(sum2[i]+=sum2[i-1])%=Mod;}while(m--){int x,l,r;ll ans=0;scanf("%d%d%d",&x,&l,&r);if(x<=l){ans=toL(x,l,r);while(ans<0) ans+=Mod;printf("%lld\n",ans);}else if(x>=r){ans=toR(x,l,r);while(ans<0) ans+=Mod;printf("%lld\n",ans);}else{ans=(toL(x,x,r)+toR(x,l,x))%Mod;while(ans<0) ans+=Mod;printf("%lld\n",ans);}}return 0;
}

【洛谷P3932】浮游大陆的68号岛【前缀和】相关推荐

  1. P3932 浮游大陆的68号岛

    题面:https://www.luogu.org/problem/P3932 本题中在设在x左边的区间为[l1,r1],在x右边的区间为[l2,r2] 则ansl=∑(d(x)-d(i))*a(i), ...

  2. 【Luogu3932】浮游大陆的68号岛

    problem solution codes //1,2:各在左右:把所有物品从区间移到最左边的花费减去把所有物品从目标位置移到最左边的花费就是把所有物品从区间移到目标位置的花费,右边同理. //3: ...

  3. 【Luogu3932】浮游大陆的68号岛(前缀和)

    problem solution codes //1,2:各在左右:把所有物品从区间移到最左边的花费减去把所有物品从目标位置移到最左边的花费就是把所有物品从区间移到目标位置的花费,右边同理. //3: ...

  4. 洛谷 P2184 贪婪大陆 解题报告

    P2184 贪婪大陆 题目背景 面对蚂蚁们的疯狂进攻,小\(FF\)的\(Tower\) \(defence\)宣告失败--人类被蚂蚁们逼到了\(Greed\) \(Island\)上的一个海湾.现在 ...

  5. 洛谷P1204 [USACO1.2]挤牛奶Milking Cows 前缀和

    这题数据比较水 暴搜都能够过去 1 #include <cstdio> 2 #include <cmath> 3 #include <cstdlib> 4 #inc ...

  6. 洛谷 [P1614] 爱与愁的心痛 (前缀和)

    ❤️爱与愁的心痛

  7. 【洛谷八连测R2】fateice-or

    题目背景 题目描述 悬浮大陆群边境地带 68号岛,妖精仓库. 在威廉的面前有着数不清的护符,这些护符的功能值从00到2^{30}-1230−1,且每种功能值的护符都可以多次使用.为了调整圣剑,迎战接下 ...

  8. 洛谷--橙色百道DP总结

    最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...

  9. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

最新文章

  1. OpenCV3.3中主成分分析(Principal Components Analysis, PCA)接口简介及使用
  2. Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
  3. andoid 打包短信发送到gmail邮箱
  4. 微信小程序实现收藏和取消收藏功能
  5. volatile关键字的作用
  6. 【转】刨根究底字符编码之十一——UTF-8编码方式与字节序标记BOM
  7. USACO 2009 Dec cow toll paths 过路费-floyd
  8. android 静态编译链接,Android NDK:使用预编译的静态库链接
  9. ssh问题:ssh_exchange_identification: Connection closed by remote host
  10. 远程连接Ubuntu服务器
  11. Android 热修复的相关总结(主要是阿里百川的)
  12. spark初始:spark腾讯雅虎优酷成功应用解析
  13. (转载自新华网)蓄势数载业初就 | 水下悬浮隧道项目一瞥
  14. C语言字符和数字相互转换(适用于0-9这10个数字)
  15. no such file or directory, open '/Users/anna/package.json'的解决
  16. EDA虚拟机分享2020版本(Synopsys2020)
  17. 百看不如一练 100道python经典题目,拿去参考学习练手(附答案)可复制
  18. 超级账本Fabric2.x 如何将智能合约部署到通道
  19. 绿盟科技技术大会 TechWorld 2016完美谢幕
  20. 试水技术论坛:泥巴乐园技术社区bbs.webgameexpress.com

热门文章

  1. 互联网发展简史(1)ARPANET的建立
  2. kubeadm工作原理-kubeadm init原理分析-kubeadm join原理分析
  3. Arcgis中topolopy(摘自网络)
  4. (Animator详解一)mixamo动画导入Unity的一些配置
  5. 应用安全系列之二十九:密码管理
  6. python猜大小程序_「每日一练」巧用python实现猜大小的游戏
  7. linux cp并打包目录,【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】...
  8. Macbook 投影仪连接问题
  9. 亚马逊显示在售商品为0怎么办?亚马逊新品货还没到就在售了
  10. 建表错误:ParseException line 1:55 cannot recognize input near ‘)‘ ‘rowformat‘ ‘delimited‘ in column type