AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792
思路:
逆元+线段树维护和+线段树维护平方和+线段树维护最大最小值;
代码:
#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的更多相关文章
- 洛谷P3792 由乃与大母神原型和偶像崇拜
P3792 由乃与大母神原型和偶像崇拜 题目背景 由乃最近没事干,去研究轻拍学去了 就是一个叫做flip flappers,轻拍翻转小膜女的番 然后研究的过程中她看到了一个叫做大母神原型的东西 大母神 ...
- LuoguP3792 由乃与大母神原型和偶像崇拜
题目地址 题目链接 题解 由乃题还是毒瘤啊orz 显然的一个结论是,如果保证不重复,维护区间min,max然后判断max-min+1==r-l+1是否成立即可 但是有重复 于是就要orz题解区的各位大 ...
- 【洛谷P3792】由乃与大母神原型和偶像崇拜
题目大意:维护一个序列,支持单点修改和查询一段区间能不能组成连续的一段数. 题解:查询区间能不能组成一段连续的数这个操作较为复杂,很难在较小时间复杂度内直接维护.这里采用线段树维护区间哈希的策略,即: ...
- p3792 由乃与大母神原型和偶像崇拜(思维+线段树)
要求 1.修改x位置的值为y 2.查询区间l,r是否可以重排为值域上连续的一段 可以,很lxl 然后一开始思考合并区间,但是发现可以重排序,GG 然后想了特殊性质,比如求和,但是显然可以被叉 这时候我 ...
- 「Luogu 3792」由乃与大母神原型和偶像崇拜
更好的阅读体验 Portal Portal1: Luogu Description 给你一个序列\(a\) 每次两个操作: 修改\(x\)位置的值为\(y\): 查询区间\([l, r]\)是否可以重 ...
- AC日记——【模板】点分治(聪聪可可) 洛谷 P2634
[模板]点分治(聪聪可可) 思路: 点分治: (感谢灯神) 代码: #include <bits/stdc++.h> using namespace std; #define maxn 2 ...
- 【AC自动机】【树状数组】【dfs序】洛谷 P2414 [NOI2011]阿狸的打字机 题解
这一题是对AC自动机的充分理解和树dfs序的巧妙运用. 题目背景 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机. 题目描述 打字机上只有28个按键,分别印有26个小写英文字母和' ...
- AC日记——codevs1688求逆序对
AC日记--codevs1688求逆序对 锵炬 掭约芴巷 枷锤霍蚣 蟠道初盛 到被他尽情地踩在脚下蹂躏心中就无比的兴奋他是怎么都 ㄥ|囿楣 定要将他剁成肉泥.挫骨扬灰跟随着戴爷这么多年刁梅生 圃鳋 ...
- 洛谷P4014 分配问题【最小/大费用流】题解+AC代码
洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...
随机推荐
- python数据绘图常用方法总结
挖坑,以后还会更新吧 做数学建模画图使用了matplotlib和numpy,这里简单总结一下常用的用法 一.数据拟合 1.np.polyfit(x, y, n) 使用n次多项式去拟合x,y散点图,返回 ...
- [洛谷P1892]团伙
题目大意:有n个人,关系为:朋友的朋友是朋友,敌人的敌人是朋友.如果是朋友就在一个团队内,是敌人就不在,现在给出一关系,问最多有多少团伙.题解:并查集,建反集,如果是朋友,就把他们的并查集合并:如果是 ...
- 分享一些JavaScript简易小技巧
特性检测而非浏览器检测 因为某某特性某浏览器不支持,我们经常的做法是在代码中直接先做浏览器判断如: 1 if(Broswer.isFirfox){ 2 //do something 3 } 其 ...
- 闲话JavaScript与Cookies
使用 Cookies 我们已经知道,在 document 对象中有一个 cookie 属性.但是 Cookie 又是什么?"某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些 ...
- 2017年研究生数学建模D题(前景目标检测)相关论文与实验结果
一直都想参加下数学建模,通过几个月培训学到一些好的数学思想和方法,今年终于有时间有机会有队友一起参加了研究生数模,but,为啥今年说不培训直接参加国赛,泪目~_~~,然后比赛前也基本没看,直接硬刚.比 ...
- [bzoj 2844]线性基+高斯消元
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2844 又用到线性基+高斯消元的套路题了,因为经过高斯消元以后的线性基有非常好的序关系,所以 ...
- 两数之和 [ leetcode ]
原题地址:https://leetcode-cn.com/articles/two-sum/ 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元 ...
- Idea 部署非Maven项目
参考:http://m.blog.csdn.net/z69183787/article/details/78030857 以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后 ...
- 【Foreign】字符串匹配 [KMP]
字符串匹配 Time Limit: 10 Sec Memory Limit: 256 MB Description Input Output Sample Input 3 3 6 3 1 2 1 2 ...
- CTSC游记
CTSC游记 day 0 到达帝都. 复习板子 day 1 第一题傻逼题啊 第二题第三题写个暴力 好了120稳了 出来一看第一题基数排序炸了? 51+10+10崩盘 day 2 答辩有意思啊 王选怎么 ...