由乃与大母神原型和偶像崇拜

思路:

  逆元+线段树维护和+线段树维护平方和+线段树维护最大最小值;

代码:

#include <bits/stdc++.h>

using namespace std;

#define maxn 500005
#define ll long long
#define llf ll
#define INF 0x7fffffff
#define True_Ans "damushen"
#define False_Ans "yuanxing"
#define mod (1000000009LL)
#define mod_ (833333341LL) struct TreeNodeType {
int l,r,mid,maxval,minval;
ll sumval;
llf sumval2;
};
struct TreeNodeType tree[maxn<<]; int n,m,qmax,qmin; ll qsum; llf qsum2; inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
} inline void in(ll &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
} void tree_build(int now,int l,int r)
{
tree[now].l=l,tree[now].r=r;
if(l==r)
{
in(tree[now].sumval),tree[now].sumval2=(tree[now].sumval*tree[now].sumval)%mod;
tree[now].maxval=tree[now].sumval,tree[now].minval=tree[now].sumval;return;
}
tree[now].mid=l+r>>,tree_build(now<<,l,tree[now].mid),tree_build(now<<|,tree[now].mid+,r);
tree[now].sumval=tree[now<<].sumval+tree[now<<|].sumval;
tree[now].sumval2=(tree[now<<].sumval2+tree[now<<|].sumval2)%mod;
tree[now].maxval=max(tree[now<<].maxval,tree[now<<|].maxval);
tree[now].minval=min(tree[now<<].minval,tree[now<<|].minval);
} void tree_query(int now,int l,int r)
{
if(tree[now].l>=l&&tree[now].r<=r)
{
qmax=max(qmax,tree[now].maxval),qmin=min(qmin,tree[now].minval);
qsum+=tree[now].sumval,qsum2+=tree[now].sumval2;return;
}
if(l<=tree[now].mid) tree_query(now<<,l,min(tree[now].mid,r));
if(r>tree[now].mid) tree_query(now<<|,max(tree[now].mid+,l),r);
} void tree_change(int now,int to,int val_)
{
if(tree[now].l==tree[now].r)
{
tree[now].sumval=val_,tree[now].maxval=val_,tree[now].minval=val_;
tree[now].sumval2=(tree[now].sumval*tree[now].sumval)%mod;return;
}
if(to<=tree[now].mid) tree_change(now<<,to,val_);
else tree_change(now<<|,to,val_);
tree[now].sumval=tree[now<<].sumval+tree[now<<|].sumval;
tree[now].sumval2=(tree[now<<].sumval2+tree[now<<|].sumval2)%mod;
tree[now].maxval=max(tree[now<<].maxval,tree[now<<|].maxval);
tree[now].minval=min(tree[now<<].minval,tree[now<<|].minval);
} llf Sum2(int r)
{
llf R_=r;
return (((((R_*(R_+))%mod)*(R_*+))%mod)*)%mod;
} ll Sum(int l,int r)
{
ll L_=l,s=r-l+;
return L_*s+s*(s-)/;
} int main()
{
in(n),in(m),tree_build(,,n);
llf lfpos;ll llpos;int op,l,r;
for(;m--;)
{
in(op),in(l),in(r);
if(op==) tree_change(,l,r);
else
{
qsum=,qsum2=,qmax=,qmin=INF,tree_query(,l,r);
if(qmax-qmin==r-l)
{
if(qsum==Sum(qmin,qmax))
{
if((qsum2+Sum2(qmin-))%mod==Sum2(qmax)) puts(True_Ans);
else puts(False_Ans);
}
else puts(False_Ans);
}
else puts(False_Ans);
}
}
return ;
}

AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792的更多相关文章

  1. 洛谷P3792 由乃与大母神原型和偶像崇拜

    P3792 由乃与大母神原型和偶像崇拜 题目背景 由乃最近没事干,去研究轻拍学去了 就是一个叫做flip flappers,轻拍翻转小膜女的番 然后研究的过程中她看到了一个叫做大母神原型的东西 大母神 ...

  2. LuoguP3792 由乃与大母神原型和偶像崇拜

    题目地址 题目链接 题解 由乃题还是毒瘤啊orz 显然的一个结论是,如果保证不重复,维护区间min,max然后判断max-min+1==r-l+1是否成立即可 但是有重复 于是就要orz题解区的各位大 ...

  3. 【洛谷P3792】由乃与大母神原型和偶像崇拜

    题目大意:维护一个序列,支持单点修改和查询一段区间能不能组成连续的一段数. 题解:查询区间能不能组成一段连续的数这个操作较为复杂,很难在较小时间复杂度内直接维护.这里采用线段树维护区间哈希的策略,即: ...

  4. p3792 由乃与大母神原型和偶像崇拜(思维+线段树)

    要求 1.修改x位置的值为y 2.查询区间l,r是否可以重排为值域上连续的一段 可以,很lxl 然后一开始思考合并区间,但是发现可以重排序,GG 然后想了特殊性质,比如求和,但是显然可以被叉 这时候我 ...

  5. 「Luogu 3792」由乃与大母神原型和偶像崇拜

    更好的阅读体验 Portal Portal1: Luogu Description 给你一个序列\(a\) 每次两个操作: 修改\(x\)位置的值为\(y\): 查询区间\([l, r]\)是否可以重 ...

  6. AC日记——【模板】点分治(聪聪可可) 洛谷 P2634

    [模板]点分治(聪聪可可) 思路: 点分治: (感谢灯神) 代码: #include <bits/stdc++.h> using namespace std; #define maxn 2 ...

  7. 【AC自动机】【树状数组】【dfs序】洛谷 P2414 [NOI2011]阿狸的打字机 题解

        这一题是对AC自动机的充分理解和树dfs序的巧妙运用. 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和' ...

  8. AC日记——codevs1688求逆序对

    AC日记--codevs1688求逆序对 锵炬 掭约芴巷 枷锤霍蚣 蟠道初盛 到被他尽情地踩在脚下蹂躏心中就无比的兴奋他是怎么都 ㄥ|囿楣 定要将他剁成肉泥.挫骨扬灰跟随着戴爷这么多年刁梅生 圃鳋 ...

  9. 洛谷P4014 分配问题【最小/大费用流】题解+AC代码

    洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...

随机推荐

  1. kkpager的改进,Ajax数据变化但是页码不变的问题,kkpagerajax

    最近做项目用到了kkpager来做分页,在一个页面只是调用一次的时候不会出现问题,但是在一个页面多次调用就出现问题了. 在网上搜集了好久,终于找到了解决方法,记录下来方便以后使用.希望也可以方便需要的 ...

  2. elmentUI组件怎么绑定原生事件

    el-input为例: <el-input id="user-input" type="textarea" placeholder="请换行输入 ...

  3. Thread.currentThread().getContextClassLoader().loadClass(className)和Class.forName(className)的区别

    一.正文: 有去看开源框架的童鞋,应该会经常看到如下代码:Thread.currentThread().getContextClassLoader().loadClass(className),那这个 ...

  4. express框架 中间件

  5. hibernate多表查询

    一对多进行查询(用懒加载的模式) 查找区域所对应的街道: Dao: public Qu selQu(String dno){ Session session=HibernateSessionFacto ...

  6. NOI2018 D1T1 [NOI2018]归程 解题报告

    P4768 [NOI2018]归程 题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 \(n\) 个节点.\(m\) 条边的无向连通图(节点的编号从 \ ...

  7. MySQL备份之mysqlhotcopy与注意事项

    此文章主要向大家介绍的是MySQL备份之mysqlhotcopy与其在实际操作中应注意事项的描述,我们大家都知道实现MySQL数据库备份的常用方法有三个,但是我们今天主要向大家介绍的是其中的一个比较好 ...

  8. Palindrome [Manecher]

    Palindrome Time Limit: 15000MS Memory Limit: 65536K Total Submissions: 12214 Accepted: 4583 Descript ...

  9. Hadoop NameNode元数据相关文件目录解析

    在<Hadoop NameNode元数据相关文件目录解析>文章中提到NameNode的$dfs.namenode.name.dir/current/文件夹的几个文件: 1 current/ ...

  10. Cannot read property 'resetFields' of undefined 问题及引申

    问题描述: 使用element开发我的后台系统,编辑和新增使用了同一个弹出框<el-dialog><el-form></el-form></el-dialog ...