多校联测11 模板题

题目大意

给你四个整数 n , m , s e e d , w n,m,seed,w n,m,seed,w,其中 n , m n,m n,m为两个多项式 A ( x ) = ∑ i = 0 n a i x i A(x)=\sum\limits_{i=0}^na_ix^i A(x)=i=0naixi B ( x ) = ∑ i = 0 m b i x i B(x)=\sum\limits_{i=0}^mb_ix^i B(x)=i=0mbixi的最高次数, s e e d , w seed,w seed,w是用来生成 a i a_i ai b i b_i bi的参数。

C ( x ) = A ( x ) B ( x ) = ∑ i = 0 n + m c i x i C(x)=A(x)B(x)=\sum\limits_{i=0}^{n+m}c_ix^i C(x)=A(x)B(x)=i=0n+mcixi

q q q次询问,第 i i i次输入 l i , r i l_i,r_i li,ri,求 ∑ j = l i r i c j \sum\limits_{j=l_i}^{r_i}c_j j=liricj 1145141999 1145141999 1145141999 1145141999 = 2 × 7 × 11 × 13 × 17 × 33647 + 1 1145141999=2\times 7\times 11\times 13\times 17\times 33647+1 1145141999=2×7×11×13×17×33647+1,是一个质数)取模后的值。

构造 a i a_i ai b i b_i bi的代码如下,可以对其进行修改来完成此题。

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long u64;
const int p=1145141999;
int a[10000005],b[10000005];
int n,m,q,w;
u64 seed;
u64 rnd()
{u64 x = seed;x ^= x << 13;x ^= x >> 7;x ^= x << 17;return seed = x;
}
int main(){scanf("%d%d%llu%d",&n,&m,&seed,&w);scanf("%d",&q);for(int i=0;i<=n;++i)a[i]=rnd()%w;for(int i=0;i<=m;++i)b[i]=rnd()%w;int l,r;for(int i=1;i<=q;++i){scanf("%d%d",&l,&r);}return 0;
}

1 ≤ n ≤ 6 × 1 0 6 , 1 ≤ q ≤ 25 , 1 ≤ w ≤ 1145141999 1\leq n\leq 6\times 10^6,1\leq q\leq 25,1\leq w\leq 1145141999 1n6×106,1q25,1w1145141999


题解

C ( x ) = A ( x ) B ( x ) = ∑ i = 0 n + m ( ∑ j = 0 i a j b i − j ) x i C(x)=A(x)B(x)=\sum\limits_{i=0}^{n+m}(\sum\limits_{j=0}^ia_jb_{i-j})x^i C(x)=A(x)B(x)=i=0n+m(j=0iajbij)xi

也就是说, c i = ∑ j = 0 i a j b i − j c_i=\sum\limits_{j=0}^ia_jb_{i-j} ci=j=0iajbij

那么, ∑ i = 0 t c i = ∑ i = 0 t ∑ j = 0 i a j b i − j = ∑ j = 0 t a j ∑ i = 0 t − j b i \sum\limits_{i=0}^tc_i=\sum\limits_{i=0}^t\sum\limits_{j=0}^ia_jb_{i-j}=\sum\limits_{j=0}^ta_j\sum\limits_{i=0}^{t-j}b_i i=0tci=i=0tj=0iajbij=j=0taji=0tjbi

b i b_i bi的前缀和为 s u m i {sum}_i sumi S ( t ) = ∑ i = 0 t a i s u m t − i S(t)=\sum\limits_{i=0}^ta_i{sum}_{t-i} S(t)=i=0taisumti,则答案为 S ( r ) − S ( l − 1 ) S(r)-S(l-1) S(r)S(l1)

S ( t ) S(t) S(t)的时间复杂度为 O ( n ) O(n) O(n),所以总时间复杂度为 O ( n q ) O(nq) O(nq)

code

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long u64;
const long long p=1145141999;
int a[20000005],b[20000005],sum[20000005];
int n,m,q,w;
u64 seed;
u64 rnd()
{u64 x = seed;x ^= x << 13;x ^= x >> 7;x ^= x << 17;return seed = x;
}
long long gt(int t){long long re=0;for(int i=0;i<=t;i++){re=(re+1ll*a[i]*sum[t-i])%p;}return re;
}
int main(){scanf("%d%d%llu%d",&n,&m,&seed,&w);scanf("%d",&q);for(int i=0;i<=n;++i)a[i]=rnd()%w;for(int i=0;i<=m;++i)b[i]=rnd()%w;sum[0]=b[0];for(int i=1;i<=n+m;i++) sum[i]=(1ll*sum[i-1]+b[i])%p;int l,r;for(int i=1;i<=q;++i){scanf("%d%d",&l,&r);printf("%lld\n",(gt(r)-gt(l-1)+p)%p);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Glide源码分析

一&#xff0c;Glide一次完整的加载流程 下面的流程图是一次完整的使用Glide加载图片流程,时序图 二&#xff0c;Glide重要的类图 三&#xff0c;Glide加载图片 流程图

华为云云耀云服务器L实例评测|Ubuntu 22.04部署edusoho-ct企培版教程 | 支持华为云视频点播对接CDN加速

华为云云耀云服务器L实例评测&#xff5c;Ubuntu 22.04部署edusoho企培版教程 1、选择购买 华为云耀云服务器L实例 简单上云第一步 2、选择你要安装的操作系统&#xff0c;例如 Ubuntu 22.04 server 64bit 3、然后支付订单就行了 4、华为云云耀云服务器L实例创建好之后&#x…

【高级rabbitmq】

文章目录 1. 消息丢失问题1.1 发送者消息丢失1.2 MQ消息丢失1.3 消费者消息丢失1.3.1 消费失败重试机制 总结 2. 死信交换机2.1 TTL 3. 惰性队列3.1 总结&#xff1a; 4. MQ集群 消息队列在使用过程中&#xff0c;面临着很多实际问题需要思考&#xff1a; 1. 消息丢失问题 1.1…

Qt + FFmpeg 搭建 Windows 开发环境

Qt FFmpeg 搭建 Windows 开发环境 Qt FFmpeg 搭建 Windows 开发环境安装 Qt Creator下载 FFmpeg 编译包测试 Qt FFmpeg踩坑解决方法1&#xff1a;换一个 FFmpeg 库解决方法2&#xff1a;把项目改成 64 位 后记 官方博客&#xff1a;https://www.yafeilinux.com/ Qt开源社区…

阿里云ECS服务器上启动的portainer无法访问的问题

如下图&#xff0c;在阿里云ECS服务器上安装并启动了portainer&#xff0c;但是在自己电脑上访问不了远程的portainer。 最后发现是要在网络安全组里开放9000端口号&#xff0c;具体操作如下&#xff1a; 在云服务器管理控制台点击左侧菜单中的网络与安全-安全组&#xff0c;然…

selenium +IntelliJ+firefox/chrome 环境全套搭配

1第一步&#xff1a;下载IntelliJ idea 代码编辑器 2第二步&#xff1a;下载浏览器Chrome 3第三步&#xff1a;下载JDK 4第四步&#xff1a;配置环境变量&#xff08;1JAVA_HOME 2 path&#xff09; 5第五步&#xff1a;下载Maven 6第六步&#xff1a;配置环境变量&#x…

【计算机基础知识】字符的编码表示

欢迎来到我的&#xff1a;世界 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言1.西文字符编码2.中文字符编码汉字输入码汉字国标码汉字机内码汉字字形码 总结 前言 计算机处理的数据中&#xff0c;除了数值型数据以外…

小谈设计模式(9)—工厂方法模式

小谈设计模式&#xff08;9&#xff09;—工厂方法模式 专栏介绍专栏地址专栏介绍 工厂方法模式角色分类抽象产品&#xff08;Abstract Product&#xff09;具体产品&#xff08;Concrete Product&#xff09;抽象工厂&#xff08;Abstract Factory&#xff09;具体工厂&#x…

前端跨域解决方案

打包前端项目体验 生产环境和开发环境配置上线使用nginx进行代理跨域上线使用后端进行跨域 评估结果 Result 方法软件优点缺点前端跨域webpack直接在前端进行跨域&#xff0c;实质是利用webpack作为代理转发给服务器上线之后不可以用&#xff0c;而且有时候还是需要后端也要…

校招秋招,性格和职业有关系吗?

企业在招聘应届毕业生时不再局限于普通的面试或者笔试&#xff0c;在互联网时代&#xff0c;为了能够更好的匹配需要的优质人才&#xff0c;企业会通过各种测试来提高招聘的准确率以及成功率。也许以前很多人都听说过性格和职业是有一定关系的&#xff0c;但是如何确定自己的性…

【Java 进阶篇】HTML列表标签详解与示例

HTML&#xff08;Hypertext Markup Language&#xff09;是网页开发中的标准标记语言&#xff0c;用于构建网页内容。在网页中&#xff0c;常常需要展示信息的列表&#xff0c;例如商品列表、文章目录、任务清单等。HTML提供了多种列表标签&#xff0c;用于创建不同类型的列表。…

热迁移中VirtIO-PCI设备的配置空间处理

文章目录 问题现象定位过程日志分析源端目的端 原理分析基本原理上下文分析复现分析patch分析 总结解决方案 问题现象 集群升级虚拟化组件版本&#xff0c;升级前存量运行并挂载了virtio磁盘的虚拟机集群内热迁移到升级后的节点失败&#xff0c;QEMU报错如下&#xff1a; 202…

8.2 JUC - 4.Semaphore

目录 一、是什么&#xff1f;二、简单使用三、semaphore应用四、Semaphore原理 一、是什么&#xff1f; Semaphore&#xff1a;信号量&#xff0c;用来限制能同时访问共享资源的线程上限 二、简单使用 public class TestSemaphore {public static void main(String[] args) …

Centos7安装Redis7.x最新稳定版|配置开机启动(骨灰级|保姆级)

Python3中类的高级语法及实战 Python3(基础|高级)语法实战(|多线程|多进程|线程池|进程池技术)|多线程安全问题解决方案 Python3数据科学包系列(一):数据分析实战 Python3数据科学包系列(二):数据分析实战 Python3数据科学包系列(三):数据分析实战 Win11查看安装的Python路…

[NISACTF 2022]popchains - 反序列化+伪协议

[NISACTF 2022]popchains 一、解题流程二、小小疑惑 一、解题流程 1、链条&#xff1a;Road_is_Long&#xff08;construct->wakeup【page$r】-> toString【string$m】&#xff09;-> Make_a_Change&#xff08;construct->get【effort$t】&#xff09;-> Try_W…

【代码实践】HAT代码Window平台下运行实践记录

HAT是CVPR2023上的自然图像超分辨率重建论文《activating More Pixels in Image Super-Resolution Transformer》所提出的模型。本文旨在记录在Window系统下运行该官方代码&#xff08;https://github.com/XPixelGroup/HAT&#xff09;的过程&#xff0c;中间会遇到一些问题&am…

如何实现浏览器的前进和后退功能?

文章来源于极客时间前google工程师−王争专栏。 如何理解栈 后进者先出&#xff0c;先进者后出&#xff0c;这就是典型的“栈”结构。 从栈的操作特性来看&#xff0c;栈是一种“操作受限”的线性表&#xff0c;只允许在一端插入和删除数据。 当某个数据集合只涉及在一端插入…

css复合选择器

交集选择器 紧紧挨着 <template><div><p class"btn">Click me</p><button class"btn" ref"myButton" click"handleClick">Click me</button></div> </template> <style> but…

linux系统中常见注册函数的使用方法

大家好&#xff0c;今天给大家分享一下&#xff0c;linux系统中常见的注册函数register_chrdev_region()、register_chrdev()、 alloc_chrdev_region()的使用方法​。 一、函数包含的头文件&#xff1a; 分配设备编号&#xff0c;注册设备与注销设备的函数均在fs.h中申明&…

数据结构与算法--贪心算法

数据结构与算法-贪心算法 1 贪心算法的概念 2 贪心算法的套路 3 贪心算法常用技巧 4 会议问题 5 字典序问题 1 贪心算法的概念 在某一标准下,优先考虑最满足标准的样本,最后考虑不满足标准的样本,最终得到一个答案的算法,叫做贪心算法 也就是说 不是从整体上加以考虑,所…