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

思路:

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

代码:

#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相关推荐

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

    题面传送门 可以算一道线段树维护hash的模板题了吧. hash要满足两个条件:相同的数hash值一定一样与hash冲突尽量少. 这道题hash序列可以用幂次方来hash 然后用线段树随便维护一下就好 ...

  2. 洛谷大起义胜利的经验总结

    UPD1(2019.7.11):chen_zhe解除了对我的禁言,但仍保持大脑皮层对刷题重心转到LibreOJ的决策,50年不变. 2019-07-09 9:54 结束黑暗无光的\(luogu\)统治 ...

  3. 计算机三级上机场,自学通过计算机二级、三级、四级,保研天津大学,证书拿到手软!你被中航大男神圈粉了吗?...

    原标题:自学通过计算机二级.三级.四级,保研天津大学,证书拿到手软!你被中航大男神圈粉了吗? 他刻苦努力.勤奋踏实,是学习上的巨人:他团结同学.真诚善良,是生活中的强者.他将自己的真心融于生活中,以公 ...

  4. 【减肥日记】220斤大体重,10个月减重54.6斤(持续更新)

    整理了整个过程的减肥日记 每个月,每个阶段的整理. [总-减肥日记]220斤大体重,10个月减重54.6斤 第1个月,2021年06月04日-07月01日,110-104.5kg,减重11斤 第2个月 ...

  5. 洛谷-DFS-1101-单词方阵-个人AC题解及公共题解的笔记

    先上自己AC代码(博主这个代码修改过多次,只因代码长度过长) #include<bits/stdc++.h> using namespace std; #define MAXN 102 i ...

  6. 洛谷 P-4045 密码(AC自动机+状态压缩+数位DP+乱搞)

    洛谷 P-4045 密码 记AC的第一道黑题! 题意:已知一段密码包含了一些字符串,然后求满足条件的密码有多少个,数量小于42时还得全部输出 思路: 一开始WA了两个点,不知道WA的什么,索性把读入的 ...

  7. 烦神的斐波那契洛谷-1306-斐波那契公约数

    传送门 洛谷1306传送门 -------------------------------------------------------------------------------------- ...

  8. 洛谷-DFS-1019-单词接龙-个人AC题解和公共AC题解笔记

    学习内容: 预处理 万能头文件 string的使用 话不多说,直奔主题 本人AC代码 #include<iostream> #include<cstdio> #include& ...

  9. UOJ224/洛谷P1737 【NOI2016】旷野大计算 造计算机

    论一条咸鱼是有多闲系列. 浑浑噩噩做了两天,感觉自己造计算机的水平得到了本质上的提升. 官方题解看不懂啊喂,民间题解在哪找啊喂. test1 非常简单. I I + 1 2 - 3 + 4 4 O 5 ...

最新文章

  1. mysqldump导入导出mysql数据库
  2. 学习MSCKF笔记——前端、图像金字塔光流、Two Point Ransac
  3. OpenCV使用F变换进行修补
  4. 云+X案例展 | 民生类:纷享销客助力沃得农机构筑智能化、信息化之路
  5. 点云上的卷积神经网络及其部分应用
  6. Scala安装及环境变量配置
  7. 值对于 int32 太大或太小。_失效值处理
  8. PCI-E 5.0标准公布:速度再次翻番达32GT/s
  9. 频率主义(Frequentism)与贝叶斯主义(Bayesianism)的哲学辨异与实践(Python仿真)
  10. 双非二本院校,北京211,字节跳动 → 一个新秀的六年
  11. linux怎么运维和平精英游戏,和平精英开局怎么玩 和平精英开局玩法介绍
  12. linux 终端tty的含义,终端、控制台、tty、shell等区别与概念初辨析
  13. 快速上手efficient(keras)
  14. WebView 入坑
  15. python发行版是什么意思_致 Python 初学者
  16. 一个具有一些功能的网络画图板
  17. 纸片人「活」了。Meta AI新作:只需几分钟,手绘小人有了灵魂
  18. matlab中的regress函数总结
  19. 大规模并行 量子计算机,QC资讯丨IBM发布量子路线图——将在2023年底推出1000量子比特量子计算机...
  20. ubuntu16.04 百度网盘加速下载文件

热门文章

  1. Python的那些隐藏特性
  2. ZH奶酪:PHP遍历目录/文件的3种方法
  3. @Html.Partials 加载分布视图传参数
  4. web系统权限之数据权限
  5. Python 扯淡的Map-Reduce
  6. 数据库设计三大范式详解
  7. Oracle 9i for RedHat Linux 的安装
  8. [swift] LeetCode 234. Palindrome Linked List
  9. spring事务管理几种方式(转)
  10. Oracle 用户,角色,权限的sql语句