当前位置: 首页 > 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…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析&#xff0c;分为​​已启动​​和​​未启动​​两种场景&#xff1a; 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​&#xff1a;当其他组件&#xff08;如Activity、Service&#xff09;通过ContentR…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

数据库——redis

一、Redis 介绍 1. 概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的内存键值数据库系统&#xff0c;具有以下核心特点&#xff1a; 内存存储架构&#xff1a;数据主要存储在内存中&#xff0c;提供微秒级的读写响应 多数据结构支持&…...