[洛谷P3962]浮游大陆的68号岛

【题解】洛谷P4994[【LGR-055】洛谷11月月赛]A.终于结束的起点 递推 题目链接 然后上来就打暴力的我顺利AC了…… #include<cstdio> const int N=1e7+10; int m,fib[N],n; int main() { fib[0]=0;fib[1]=1;n=1; scanf("%d",&m); while(1) { fib[n+1]=(fib[n]+fib[n-1])%m; if((fib... 阅读详情

题目←

两次前缀和来解决,式子并不难推
将二次前缀想像成三角形会比较好理解

需维护:
1、距离前缀;
2、总价值(运费)前后缀;
3、个数前后缀;

具体式子详见代码
比较恶心的是取模意义下随时会有负数,并不太会处理,求大佬指教:
qz、hz中的1表示运费,2表示个数

#include<iostream>
#include<cstdio>
#include<algorithm>
#define LL long long
#define P 19260817
using namespace std;
const int MAXN = 200000 + 50;
LL qz1[MAXN],qz2[MAXN],hz1[MAXN],hz2[MAXN];
LL num[MAXN],dis[MAXN],ju[MAXN];
LL n,x,tot,m;
int l,r,v;
int main(){
    scanf("%lld%lld",&n,&m);
    for(int i = 2;i <= n;i ++){
        scanf("%lld",&ju[i]);
        dis[i] = (dis[i - 1]%P + ju[i]%P)%P;
    }
    for(int i = 1;i <= n;i ++){
        scanf("%lld",&num[i]);
        qz1[i] = (qz1[i - 1]%P + (tot%P*ju[i]%P)%P)%P;
        tot = (num[i]%P + tot%P)%P;
        qz2[i] = tot;
    }
    tot = 0;
    for(int i = n;i >= 1;i --){
        hz1[i] = (hz1[i + 1]%P + (tot%P*ju[i + 1]%P)%P)%P;
        tot = (num[i]%P + tot%P)%P;
        hz2[i] = tot;
    }
    /*for(int i = 1;i <= n;i ++){
        printf("%lld ",hz1[i]);
    }*/
    for(int i = 1;i <= m;i ++){
        scanf("%d%d%d",&v,&l,&r);
        LL ans = 0;
        if(v >= l && v <= r){
            LL temp1 = qz1[v] - qz1[l];
            while(temp1 < 0)temp1 += P;
            LL tmp = dis[v] - dis[l];
            while(tmp < 0)tmp += P;
            temp1 = (temp1 - qz2[l - 1]%P*(tmp%P))%P;
            while(temp1 < 0)temp1 += P;
            while(tmp < 0)tmp += P;
            LL temp2 = hz1[v] - hz1[r];
            while(temp2 < 0)temp2 += P;
            tmp = dis[r] - dis[v];
            while(tmp < 0)tmp += P;
            temp2 = (temp2 - hz2[r + 1]%P*(tmp%P))%P;
            while(temp2 < 0)temp2 += P;
            ans = (temp1%P + temp2%P)%P;
        }
        else if(v > r){
            LL tmp = dis[r] - dis[l];
            while(tmp < 0)tmp += P;
            LL tmp2 = qz1[r] - qz1[l];
            while(tmp2 < 0)tmp2 += P;
            LL temp1 = tmp2 - (qz2[l - 1]%P*tmp)%P;
            while(temp1 < 0)temp1 += P;
            tmp = dis[v] - dis[r];
            while(tmp < 0)tmp += P;
            tmp2 = qz2[r] - qz2[l - 1];
            while(tmp2 < 0)tmp2 += P;
            temp1 = (temp1 + (tmp2*tmp)%P)%P;
            ans = temp1;
        }
        else if(v < l){
            LL tmp = dis[r] - dis[l];
            while(tmp < 0)tmp += P;
            LL tmp2 = hz1[l] - hz1[r];
            while(tmp2 < 0)tmp2 += P;
            LL temp1 = tmp2 - (hz2[r + 1]*(dis[r] - dis[l])%P)%P;
            while(temp1 < 0)temp1 += P;
            tmp = dis[l] - dis[v];
            while(tmp < 0)tmp += P;
            tmp2 = hz2[l] - hz2[r + 1];
            while(tmp2 < 0)tmp2 += P;
            temp1 = (temp1 + (tmp2*tmp)%P)%P;
            ans = temp1;
        }
        printf("%lld\n",ans);
    }
    return 0; 
}
半导体工厂自动化实战:用secs4net实现设备与MES系统通信(附完整代码) 本文详细介绍了如何利用secs4net框架实现半导体工厂设备与MES系统的高效通信。通过解析SECS/GEM协议的核心架构、关键业务场景实现及性能优化实践,帮助开发者快速掌握工业自动化通信技术,提升生产效率和系统稳定性。 阅读详情

相关推荐

嵌入式学习笔记——EEPROM(M24M01)

M24M01是ST公司出品的1Mbit(128Kbyte)I2C兼容EEPROM,兼容所有I2C总线模式(1MHz、400kHz、100kHz),Page大小为256字节,支持硬件写保护,超过400万次写入操作,超过200年的数据留存通过模块化设计,涵盖了 M24M01-RMN6P 的功能介绍、引脚架构、硬件连线、模块化代码以及性能优化思路,我们将 M24M01 EEPROM 与 STM32 的集成变得高效而可靠。希望能帮你在 STM32 上快速上手,并让你的项目存储管理更高效可靠。

2301_80488241的博客 1657

【Luogu3932】浮游大陆的68号岛

problem solution codes //1,2:各在左右:把所有物品从区间移到最左边的花费减去把所有物品从目标位置移到最左边的花费就是把所有物品从区间移到目标位置的花费,右边同理。 //3:若目标仓库在区间内部,将区间拆为两部分分别算。 //ans:所以只需要维护bi*xi和bi即可,用前缀和,复杂度线性 #include<ios...

weixin_30512089的博客 132

VMware vCenter 6.7证书过期急救指南:从503报错到完美修复的全流程

本文详细解析了VMware vCenter 6.7因STS证书过期导致503报错的根本原因,并提供了一套从诊断到修复的完整实战流程。内容包括使用checksts.py脚本检测STS证书状态,通过fixsts.sh脚本更新证书,以及利用Certificate-Manager全面重置所有过期证书,帮助管理员快速恢复服务并避免常见陷阱。

weixin_29234239的博客 772

洛谷 3932 浮游大陆的68号岛 前缀和

hh

Loi_cgold 367

未来计算的革命:探索存算一体芯片的潜力与挑战

未来计算的革命:探索存算一体芯片的潜力与挑战

jtwqwq的博客 1611

Win10家庭版中文用户名改英文全攻略:从注册表到环境变量一步不落

本文详细介绍了Windows 10家庭版中文用户名改为英文的完整流程,包括注册表编辑、环境变量调整等关键步骤。通过激活管理员账户、重命名用户文件夹、修改注册表键值等操作,彻底解决因中文路径导致的软件兼容性问题,并提供常见错误解决方案和系统维护建议。

weixin_29227425的博客 428

题解:珂朵莉树练习题组

Willem, Chtholly and Seniorious #include&amp;amp;amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;amp;amp;gt; #define mul(a,b,c) ((a)*(b)%(c)) using namespace std; typedef long long ll; typedef pair&amp;amp;amp;amp;amp;amp;lt;int,ll&am

wu-kan 1035

二维卡尔曼滤波位置,速度融合

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

Johnlee2019的博客 8451

洛谷P2384最短路

题目背景狗哥做烂了最短路,突然机智的考了Bosh一道,没想到把Bosh考住了…你能帮Bosh解决吗?他会给你100000000000000000000000000000000000 %10 金币(滑稽)题目描述给定n个点的带权有向图,求从1到n的路径中边权之积最小的简单路径。输入输出格式输入格式:第一行读入两个整数n,m,表示共n个点m条边。 接下来m行,每行三个正整数x,y,z,表示点x到点y有一

玫葵之蝶 735

我用GPT-5.5十分钟就搞定了论文创新点!全靠这三个提示词

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。多数研究者一写创新点就总觉得只有提出了全新的理论、颠覆了整个领域,才算真正的创新。但学术研究里的创新,有一半不是从零创造的,是在前人工作的基础上,准确找到还没人解决、或者没解决好的问题,而且真正能立住的创新通常都离不开以下这三个问题。第一,前人到底缺了什么。

智能AI让学术科研更容易 707

UE5实现建筑剖切效果

UE5实现建筑剖切效果

专注GIS开发 8464

LG-P3932 浮游大陆的68号岛

P3932 浮游大陆的68号岛 题解 由于题目又是图片又是文字,懒得弄了,自己戳一下吧。 前缀和优化就好了呀。 设p[i]p[i]p[i]

xu0_zy的博客 273

洛谷P3932 浮游大陆的68号岛

有一天小妖精们又在做游戏。这个游戏是这样的。 妖精仓库的储物点可以看做在一个数轴上。每一个储物点会有一些东西,同时他们之间存在距离。 每次他们会选出一个小妖精,然后剩下的人找到区间[l,r][l,r][l,r]储物点的所有东西,清点完毕之后问她,把这个区间内所有储物点的东西运到另外一个仓库的代价是多少? 比如储物点iii有xxx个东西,要运到储物点jjj,代价为 x×dist(i,j)x

MrTinTin的博客 857

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

浮游大陆的68号岛

题目背景 大样例下发链接:https://pan.baidu.com/s/1nuVpRS1密码: sfxg 浮游大陆的68号岛,位于浮游大陆的边境地带。平时很少有人造访。 岛上被浓厚的森林覆盖。 在这座边境地区不起眼的浮游岛上,建立着神秘的”兵器“管理仓库——妖精仓库。 题目描述 妖精仓库里生活着黄金妖精们,她们过着快乐,却随时准备着迎接死亡的生活。 换用更高尚的说法,...

aoanping0730的博客 314

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[Loi57 test 2017.4.22]T1字符串

4.22考试T1

LOI_pingxing的博客 617

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[qbxt考试Day6]小学数学 + Hash

T1 求不超过n的因子最多的数 n <= 10^16 现在才知道反素数是什么东西…… 1、因子个数与质因子大小无关 2、设X = P1^a1 * P2^a2 * P3^a3,因子数 = (a1 + 1) * (a2 + 1) *(a3 + 1) 综上,爆搜质因子指数,小的质因子指数>=大的质因子指数可保证答案不会变差#include<iostream> #include<cstdio>

LOI_pingxing的博客 508

[队内测试Day10.22T4][洛谷P2680]运输计划

题目←吐槽下考场上的魔改题面…… 看出来是运输计划后,记得以前听说过是二分,于是开始摸鱼…… 不会树链剖分,考场上卡掉一个点 尽管实现步骤很麻烦,但思路清晰的话,具体打起来还是比较容易的一道题 能摸出来大概是人品比较好……#include<iostream> #include<cstdio> #include<algorithm> #define LL long long using nam

LOI_pingxing的博客 491

[qbxt考试Day5.T1]切蛋糕

……

LOI_pingxing的博客 409

[对内测试Day10.16]贪心+读入+DP+小学数学

T1codevs2913建筑抢修大意见链接。先说自己在考场上的思路: 每个任务有结束时间的限制,这点特性很像codevs1052地鼠游戏 然后选择了将时间从后向前枚举,将当前时间所有可选择的任务丢进堆中,每次选择需要时间最小的一定最优(剩余给前面的时间更长) 对于当前可选择的最小任务时间如果无法再下一个时间点(实际的前一个的时间点)完成的话 将该任务进行的时间 -= 已进行的时间,重新扔进堆

LOI_pingxing的博客 405

[队内测试Day10.10]贪心+模拟+BFS

10.10考试

LOI_pingxing的博客 395

[队内测试Day10.12]贪心+状压+分块+树状数组

一道很神的贪心很水的DP以及很好玩的数据结构

LOI_pingxing的博客 384

[队内测试Day10.22T1][bzoj1821]部落划分 Group

题目←二分+最小生成树验证,明显添的边越多分成的组就越少,满足单调性 考场zz的把数组开了1000,直接卡到20pts#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const int MAXN = 1000000 + 50; struct edge{

LOI_pingxing的博客 372

[队内测试Day10.18]递推+tarjan+最小表示法+脑洞

T1来自dfkd的半原创题 T2tarjan T3双指针 T4公式+脑洞

LOI_pingxing的博客 365

[qbxt考试Day2.T1] video

加一点逆元的笔记

LOI_pingxing的博客 345

[队内测试Day10.26][P97]T1 字符串+前缀和

用适当的变量名代替表达式使代码更简洁

LOI_pingxing的博客 327
上一篇: [洛谷P1902]刺杀大使
下一篇: Mark待练习的东西
LOI_pingxing
博客等级 码龄10年 24粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值