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<<2];int n,m,qmax,qmin;ll qsum;llf qsum2;inline void in(int &now) {char Cget=getchar();now=0;while(Cget>'9'||Cget<'0') Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';Cget=getchar();} }inline void in(ll &now) {char Cget=getchar();now=0;while(Cget>'9'||Cget<'0') Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';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>>1,tree_build(now<<1,l,tree[now].mid),tree_build(now<<1|1,tree[now].mid+1,r);tree[now].sumval=tree[now<<1].sumval+tree[now<<1|1].sumval;tree[now].sumval2=(tree[now<<1].sumval2+tree[now<<1|1].sumval2)%mod;tree[now].maxval=max(tree[now<<1].maxval,tree[now<<1|1].maxval);tree[now].minval=min(tree[now<<1].minval,tree[now<<1|1].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<<1,l,min(tree[now].mid,r));if(r>tree[now].mid) tree_query(now<<1|1,max(tree[now].mid+1,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<<1,to,val_);else tree_change(now<<1|1,to,val_);tree[now].sumval=tree[now<<1].sumval+tree[now<<1|1].sumval;tree[now].sumval2=(tree[now<<1].sumval2+tree[now<<1|1].sumval2)%mod;tree[now].maxval=max(tree[now<<1].maxval,tree[now<<1|1].maxval);tree[now].minval=min(tree[now<<1].minval,tree[now<<1|1].minval); }llf Sum2(int r) {llf R_=r;return (((((R_*(R_+1))%mod)*(R_*2+1))%mod)*833333341)%mod; }ll Sum(int l,int r) {ll L_=l,s=r-l+1;return L_*s+s*(s-1)/2; }int main() {in(n),in(m),tree_build(1,1,n);llf lfpos;ll llpos;int op,l,r;for(;m--;){in(op),in(l),in(r);if(op==1) tree_change(1,l,r);else{qsum=0,qsum2=0,qmax=0,qmin=INF,tree_query(1,l,r);if(qmax-qmin==r-l){if(qsum==Sum(qmin,qmax)){if((qsum2+Sum2(qmin-1))%mod==Sum2(qmax)) puts(True_Ans);else puts(False_Ans);}else puts(False_Ans);}else puts(False_Ans);}}return 0; }
转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6931010.html
AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792相关推荐
- luogu P3792 由乃与大母神原型和偶像崇拜
题面传送门 可以算一道线段树维护hash的模板题了吧. hash要满足两个条件:相同的数hash值一定一样与hash冲突尽量少. 这道题hash序列可以用幂次方来hash 然后用线段树随便维护一下就好 ...
- 洛谷大起义胜利的经验总结
UPD1(2019.7.11):chen_zhe解除了对我的禁言,但仍保持大脑皮层对刷题重心转到LibreOJ的决策,50年不变. 2019-07-09 9:54 结束黑暗无光的\(luogu\)统治 ...
- 计算机三级上机场,自学通过计算机二级、三级、四级,保研天津大学,证书拿到手软!你被中航大男神圈粉了吗?...
原标题:自学通过计算机二级.三级.四级,保研天津大学,证书拿到手软!你被中航大男神圈粉了吗? 他刻苦努力.勤奋踏实,是学习上的巨人:他团结同学.真诚善良,是生活中的强者.他将自己的真心融于生活中,以公 ...
- 【减肥日记】220斤大体重,10个月减重54.6斤(持续更新)
整理了整个过程的减肥日记 每个月,每个阶段的整理. [总-减肥日记]220斤大体重,10个月减重54.6斤 第1个月,2021年06月04日-07月01日,110-104.5kg,减重11斤 第2个月 ...
- 洛谷-DFS-1101-单词方阵-个人AC题解及公共题解的笔记
先上自己AC代码(博主这个代码修改过多次,只因代码长度过长) #include<bits/stdc++.h> using namespace std; #define MAXN 102 i ...
- 洛谷 P-4045 密码(AC自动机+状态压缩+数位DP+乱搞)
洛谷 P-4045 密码 记AC的第一道黑题! 题意:已知一段密码包含了一些字符串,然后求满足条件的密码有多少个,数量小于42时还得全部输出 思路: 一开始WA了两个点,不知道WA的什么,索性把读入的 ...
- 烦神的斐波那契洛谷-1306-斐波那契公约数
传送门 洛谷1306传送门 -------------------------------------------------------------------------------------- ...
- 洛谷-DFS-1019-单词接龙-个人AC题解和公共AC题解笔记
学习内容: 预处理 万能头文件 string的使用 话不多说,直奔主题 本人AC代码 #include<iostream> #include<cstdio> #include& ...
- UOJ224/洛谷P1737 【NOI2016】旷野大计算 造计算机
论一条咸鱼是有多闲系列. 浑浑噩噩做了两天,感觉自己造计算机的水平得到了本质上的提升. 官方题解看不懂啊喂,民间题解在哪找啊喂. test1 非常简单. I I + 1 2 - 3 + 4 4 O 5 ...
最新文章
- mysqldump导入导出mysql数据库
- 学习MSCKF笔记——前端、图像金字塔光流、Two Point Ransac
- OpenCV使用F变换进行修补
- 云+X案例展 | 民生类:纷享销客助力沃得农机构筑智能化、信息化之路
- 点云上的卷积神经网络及其部分应用
- Scala安装及环境变量配置
- 值对于 int32 太大或太小。_失效值处理
- PCI-E 5.0标准公布:速度再次翻番达32GT/s
- 频率主义(Frequentism)与贝叶斯主义(Bayesianism)的哲学辨异与实践(Python仿真)
- 双非二本院校,北京211,字节跳动 → 一个新秀的六年
- linux怎么运维和平精英游戏,和平精英开局怎么玩 和平精英开局玩法介绍
- linux 终端tty的含义,终端、控制台、tty、shell等区别与概念初辨析
- 快速上手efficient(keras)
- WebView 入坑
- python发行版是什么意思_致 Python 初学者
- 一个具有一些功能的网络画图板
- 纸片人「活」了。Meta AI新作:只需几分钟,手绘小人有了灵魂
- matlab中的regress函数总结
- 大规模并行 量子计算机,QC资讯丨IBM发布量子路线图——将在2023年底推出1000量子比特量子计算机...
- ubuntu16.04 百度网盘加速下载文件