博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
暑假集训8.7数据结构专题-很妙的线段树( 觉醒力量(hidpower))
阅读量:5836 次
发布时间:2019-06-18

本文共 1748 字,大约阅读时间需要 5 分钟。

题目:oj1710

因为存在修改和查询的操作,所以学长说可以很“轻易”的想到线段树....,装作我轻易的想到了,最后是要输出答案mod17及mod46189的结果,(关键点1)然后我们发现46189=11*13*17*19;于是我们想到但处理出答案mod每个质因数的答案,再利用中国剩余定理求出答案。(关键点2)考虑对枚举进入某各区间运算的数为1-p[i],因为p[i]很小所以可以处理。然后修改操作也变成log的。非常可写。

关于中国剩余定理:x=(∑ai*ti*mi)modM。ti是逆元。

上代码:

#include
#define il inline#define LL long long#define _(d) while(d(isdigit(ch=getchar())))using namespace std;string s[17]={
"Fight","Flying","Poison","Ground","Rock","Bug","Ghost","Steel","Fire","Water","Grass","Electric","Psychic","Ice","Dragon","Dark","Fairy"};const int N=1e5+5;int n,m,p[5]={
0,11,13,17,19},k[5],P=46189;struct node{
char ch;int a;}q[N];struct data{
int b[5][20];}t[N<<2];int read(){
int x,f=1;char ch;_(!)ch=='-'?f=-1:f;x=ch-48;_()x=x*10+ch-48;return f*x;}int ksm(int x,int y,int p){
int b=x,ans=1;while(y){
if(y&1)ans=ans*b%p;b=b*b%p;y>>=1;}return ans;}LL ksml(LL x,LL y,int p){LL b=x,ans=1;while(y){
if(y&1)ans=ans*b%p;b=b*b%p;y>>=1;}return ans;}il void update(int x){ for(int i=1;i<=4;i++) for(int j=0;j
>1; build(x<<1,l,mid);build(x<<1|1,mid+1,r); update(x);}void change(int x,int l,int r,int pos){ if(l==r){ for(int i=1;i<=4;i++) for(int j=0;j
>1; if(pos<=mid)change(x<<1,l,mid,pos); else change(x<<1|1,mid+1,r,pos); update(x);}int main(){ n=read();m=read(); for(int i=1;i<=n;i++){cin>>q[i].ch;q[i].a=read();} build(1,1,n);for(int i=1;i<=4;i++)k[i]=ksml((LL)(P/p[i]),(LL)(p[i]-2),p[i]); for(int i=1;i<=m;i++){ int op=read();int x,y; if(op==1){ x=read();cout<
>q[x].ch;q[x].a=read();change(1,1,n,x);} } return 0;}
View Code

 

转载于:https://www.cnblogs.com/Jessie-/p/9440110.html

你可能感兴趣的文章
Game Loop Tutorial
查看>>
Android开发之旅:应用程序基础及组件(续)
查看>>
jQuery validate API
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
分享一种需求评审的方案
查看>>
Java中需要注意的一些案例
查看>>
拍照应用Snow被吐槽抄袭Snapchat,对比下就知道了
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>
Server2016开发环境配置
查看>>
让人烦躁的“机房空调噪音”该怎么解决?
查看>>
分布式光伏发电建设中的逆变器及其选型
查看>>
发展物联网 构建智能连接
查看>>
增强网络安全防御 推动物联网走向应用
查看>>
UML中关联,组合与聚合等关系的辨析
查看>>
《大数据管理概论》一3.2 大数据存储与管理方法
查看>>
《R语言数据挖掘》----1.10 数据属性与描述
查看>>
PowerBuilder开发简单计算器
查看>>
从HDFS看分布式文件系统的设计需求
查看>>
怎样使用linux的iptables工具进行网络共享
查看>>
《HTML5与CSS3实战指南》——导读
查看>>