当前位置: 首页 > news >正文

201912CSPT5魔数

题意:有一个从 1 1 1 n n n的连续序列,有 q q q次查询,对区间操作 [ l , r ] [l,r] [l,r]
1. 输出 s = f ( A l ) + f ( A l + 1 ) + . . . + f ( A r ) , f ( x ) = ( x 1.输出s=f(A_l)+f(A_{l+1})+...+f(A_r),f(x)=(x 1.输出s=f(Al)+f(Al+1)+...+f(Ar),f(x)=(x% 2009731336725594113 ) 2009731336725594113) 2009731336725594113)% 2019 2019 2019
2. t = s 2.t=s%5 2.t=s
3. A l , A l + 1 , A r 3.A_l,A_{l+1},A_r 3.Al,Al+1,Ar乘上 U t U_t Ut
U [ 0 − 4 ] = 314882150829468584 , 427197303358170108 , 1022292690726729920 , 1698479428772363217 , 2006101093849356424 U[0-4]=314882150829468584,427197303358170108,1022292690726729920,1698479428772363217,2006101093849356424 U[04]=314882150829468584,427197303358170108,1022292690726729920,1698479428772363217,2006101093849356424

#include<bits/stdc++.h>
typedef unsigned long long ull;
using namespace std;
ull U[5]= 
{314882150829468584,427197303358170108,1022292690726729920,1698479428772363217,2006101093849356424
};
ull mod=2009731336725594113;
unordered_map<ull, int> mp;//mp[乘数]=编号 
ull f[35],a[1000010][35];//f[编号]=乘数,a[i][j]保存的是序列A乘以j后再经过f(x)运算后的结果 
int g[35][35];//转移方程,g[i][j]=k表示序号为i,j的两个数相乘结果会转移成序号为k的数 
int n,q;
ull mul(ull a, ull b)
{ull res=0;for(;b;b>>=1){if(b&1)res=(res+a)%mod;a=(a+a)%mod;}return res;
}
void getConvert()
{queue<ull> q;int id=1;for(int i=0;i<5;i++){q.push(U[i]);mp[U[i]]=id++;}while(q.size()){ull x=q.front();q.pop();f[mp[x]]=x;for(int i=0;i<5;i++){ull t=mul(x,U[i]);if(mp[t])continue;   mp[t]=id++;q.push(t);}}
//	for(int i=1;i<=50;i++)cout<<f[i]<<endl;for(int i=1;i<=32;i++)for(int j=i;j<=32;j++)g[i][j]=g[j][i]=mp[mul(f[i],f[j])];
}
int temp[1001];
struct Node
{int l,r;int sum=0;//区间和int tag;//标记当前区间被乘了哪一个数int s[33];//保存的是该区间乘以f[i]之后的结果//我们大可以把s[]看做是res的一个预测值,因为当前区间只会被乘32个数中的某一个,//res也就只会转变为这32个s[i]的某一个void trans(int now){for(int i=1;i<=32;i++)temp[i]=s[g[i][now]];for(int i=1;i<=32;i++)s[i]=temp[i];sum=s[28];//f[28]=1,所以s[28]就是A序列自身 //cout<<sum<<" "<<now<<" "<<tag<<endl;if(tag==0)tag=now;else tag=g[tag][now];}
}t[4000010];
void build(ull p,ull l,ull r)
{t[p].l=l;t[p].r=r;if(l==r){for(int i=1;i<=32;i++)t[p].s[i]=a[l][i]%2019;t[p].sum=t[p].s[28];t[p].tag=0;return ;}int mid=(l+r)>>1;build(p*2,l,mid);build(p*2+1,mid+1,r);for(int i=1;i<=32;i++)t[p].s[i]=t[p*2].s[i]+t[p*2+1].s[i];t[p].sum=t[p].s[28];t[p].tag=0;
}
void spread(int p)
{if(t[p].tag){t[p*2].trans(t[p].tag);t[p*2+1].trans(t[p].tag);t[p].tag=0;}
}
ull ask(ull p,ull l,ull r)
{if(t[p].r<l||t[p].l>r)return 0;if(t[p].l>=l&&t[p].r<=r)return t[p].sum;	spread(p);	ull val=0;int mid=(t[p].l+t[p].r)>>1;if(l<=mid)val+=ask(p*2,l,r);if(mid<r)val+=ask(p*2+1,l,r);return val;
}
void Mul(ull p,ull l,ull r,ull k)
{if(t[p].r<l||t[p].l>r)return ;if(t[p].l>=l&&t[p].r<=r){t[p].trans(k);return ;}spread(p);int mid=(t[p].l+t[p].r)>>1;if(l<=mid)Mul(p*2,l,r,k);if(mid<r)Mul(p*2+1,l,r,k);for(int i=1;i<=32;i++)t[p].s[i]=t[p*2].s[i]+t[p*2+1].s[i];t[p].sum=t[p*2].sum+t[p*2+1].sum;
}
int main()
{getConvert();cin>>n>>q;for(int i=1;i<=n;i++)for(int j=1;j<=32;j++){if(i==1)a[i][j]=f[j]%mod;//因为序列是连续的,所以可以使用加法递推 else a[i][j]=(f[j]+a[i-1][j])%mod;//	cout<<a[i][j]<<" ";}build(1,1,n);for(int i=1;i<=q;i++){ull L,R;cin>>L>>R;ull ans=ask(1,L,R);cout<<ans<<endl;Mul(1,L,R,(ans%5)+1);//注意+1 }return 0;
}

相关文章:

201912CSPT5魔数

题意&#xff1a;有一个从 1 1 1到 n n n的连续序列&#xff0c;有 q q q次查询,对区间操作 [ l , r ] [l,r] [l,r]&#xff1a; 1. 输出 s f ( A l ) f ( A l 1 ) . . . f ( A r ) , f ( x ) ( x 1.输出sf(A_l)f(A_{l1})...f(A_r),f(x)(x 1.输出sf(Al​)f(Al1​)...f(A…...

Pycharm python用matplotlib 3D绘图显示空白解决办法

问题原因&#xff1a; matplotlib版本升级之后显示代码变了&#xff0c;修改为新的 # ax Axes3D(fig) # 原代码 ax fig.add_axes(Axes3D(fig)) # 新代码import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Ax…...

java hello world

1、java IDEA工具安装&#xff1a; helloworld &#xff1a; package com.company;public class Main {public static void main(String[] args) {// write your code hereString a "hello world";System.out.println(a);} } java一些注意事项 1、大小写敏感 2、类…...

典型数据结构的模板实现

栈和数组 1.使用类模板实现数组结构定长数组可变数组 2.使用类模板实现栈结构 在我们初步了解编写模板类后&#xff0c;应当做一下代码练习。这节我们就做一个编写代码的补充&#xff0c;方便大家继续学习模板类的嵌套。作为新手而言&#xff0c;建议大家先写一个具体类&#x…...

Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案

目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题&#xff0c;可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目&#xff0c;鼠标移动至头文件上右击&#xff0c;选择转到文档或…...

webpack配置

一、很多基础方面的配置被vuecli所集成一般项目都是使用vuecli,不会真正的去从0-1进行webpack配置: 1、vuecli中的webpack基础配置: (1)入口文件默认在src/main;输出在dist; (2)集成了大量的插件和加载器:babel-loader 处理 JavaScript 文件、使用 css-loader 和 style-load…...

1 月 Web3 游戏行业概览:市场实现空前增长

作者&#xff1a;lesleyfootprint.network 今年一月&#xff0c;区块链游戏领域迎来了爆发式增长&#xff0c;活跃用户的数量大幅提升。 区块链游戏不断融合 AI 技术&#xff0c;旨在提升玩家体验并扩大其服务范围&#xff0c;公链与游戏的兼容性问题也日渐受到重视。技术革新…...

如何在 Mac 上重置网络设置

如何在 Mac 上重置网络设置 Mac 几乎在所有时间都非常可靠&#xff0c;但有时您在连接到互联网时可能会遇到困难或浏览速度缓慢。 互联网可能在您的其他设备上正常工作&#xff0c;这可能很烦人。 通常&#xff0c;问题的原因是什么并不明显&#xff0c;甚至根本不存在。 如果…...

BVH动画绑骨蒙皮并在Unity上展示

文章目录 Blender绑定骨骼Blender蒙皮Blender中导入bvh文件将FBX导入Unity Blender绑定骨骼 先左上角红框进入model模式&#xff0c;选中要绑定的模型&#xff0c;然后进入Edit模式把骨骼和关节对齐。 &#xff08;选中骨骼&#xff0c;G移动&#xff0c;R旋转&#xff09; 为…...

c# 缓存帮助类

public class CacheHelper { private static Dictionary<string, object> dic new Dictionary<string, object>(); // 定义一个静态变量来保存类的实例 private static CacheHelper session; // 定义一个标识确保线程同步 pr…...

红队渗透靶机:TIKI: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录探测 1、dirsearch 2、gobuster WEB web信息收集 searchsploit cms信息收集 ssh登录 提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:2…...

【数据结构】二叉树的三种遍历(非递归讲解)

目录 1、前言 2、二叉树的非递归遍历 2.1、先序遍历 2.2、中序遍历 2.3、后序遍历 1、前言 学习二叉树的三种非递归遍历前&#xff0c;首先来了解一下递归序&#xff1a; 递归序就是按照先序遍历的顺序&#xff0c;遇到的所有结点按顺序排列&#xff0c;重复的结点也必须记…...

Spark Standalone 集群配置

前言 平时工作中主要用 YARN 模式,最近进行TPC测试用到了 Standalone 模式,便记录总结一下 Standalone 集群相关的配置。 集群管理类型 Spark 支持三种集群管理类型: Standalone - Spark附带的一个简单的集群管理器,可以轻松地设置集群。Apache Mesos - 一个通用的集群管…...

蓝桥杯Web应用开发-CSS3 新特性【练习二:获得焦点验证】

页面上有一个姓名输入框和一个密码输入框&#xff0c;当聚焦输入框时&#xff0c;输入框的背景颜色会发生改变&#xff0c; 新建一个 index3.html 文件&#xff0c;在其中写入以下内容。 <!DOCTYPE html> <html lang"en"><head><meta charset&…...

职业发展 - 一个专注于嵌入式物联网架构设计的攻城狮(转载)

1 关于我 很高兴大家都关注到我&#xff0c;从而看到这篇简要的介绍&#xff0c;下面有更多的关于我。 我是一个嵌入式架构师&#xff0c;早前从事过智能电网相关的电力设备开发&#xff0c;金融POS机开发&#xff0c;以及eSIM相关的软件开发&#xff0c;现在主要在做嵌入式I…...

阿里云ECS服务器Linux安装Mysql8

链接&#xff1a;https://pan.baidu.com/s/1s9j7OhiOMV9e9Qq9GDbysA 提取码&#xff1a;dd5a --来自百度网盘超级会员V5的分享 Mysql官网:MySQL 关于Mysql Yum Repository介绍可以看下 更加简单 关于X86和ARM 传到服务器 进入所在包 cd /usr/local/develop/mysql8 解压 …...

Redis中内存淘汰算法实现

Redis中内存淘汰算法实现 Redis的maxmemory支持的内存淘汰机制使得其成为一种有效的缓存方案&#xff0c;成为memcached的有效替代方案。 当内存达到maxmemory后&#xff0c;Redis会按照maxmemory-policy启动淘汰策略。 Redis 3.0中已有淘汰机制&#xff1a; noevictionall…...

人工智能(pytorch)搭建模型23-pytorch搭建生成对抗网络(GAN):手写数字生成的项目应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能(pytorch)搭建模型23-pytorch搭建生成对抗网络(GAN):手写数字生成的项目应用。生成对抗网络&#xff08;GAN&#xff09;是一种强大的生成模型&#xff0c;在手写数字生成方面具有广泛的应用前景。通过生成…...

解决使用Springboot jpa update数据时报错Executing an update:delete query

解决org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query 使用的Springboot jpa ,使用原生SQL方法实现数据更新时&…...

OpenCV-32 膨胀操作

膨胀是与腐蚀相反的操作&#xff0c;基本原理是只要保证卷积核的锚点是非0值&#xff0c;周边无论是0还是非0值&#xff0c;都变为0。 使用API---dilate&#xff08;img&#xff0c; kernel&#xff0c; iterationms 1&#xff09; 示例代码如下&#xff1a; import cv2 imp…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...