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

题目背景

由乃最近没事干,去研究轻拍学去了

就是一个叫做flip flappers,轻拍翻转小膜女的番

然后研究的过程中她看到了一个叫做大母神原型的东西

大母神不仅是部落保护神,而且是部落间互相识别的标记(以后泛化为不同的图形符号、服饰和祭祀仪式),在部落联盟出现后,具有领导力的部落神祇,上升为整个联盟的共神,进而成为酋邦和王国的共神

大概就是说这个东西是母系社会时候的偶像,然后象征着母亲可以创造生命也可以毁灭生命什么什么的,分别是善母与恶母,既孕育一切,又吞噬一切

然后我们熟知的神话里面就有大母神,比如女娲其实就是个大母神。。。

原始部落时期的大母神既具有生育和哺乳的能力,也具有保护部落、带来丰收的神力。

到了神话时期,大母神进一步分化,演变出形形色色的女神,分别象征了女性能量的不同面向:孕育女神、大地女神、爱与美女神、保护女神、战争女神、丰收女神、智慧女神、命运女神……

这些是善母

世间的事物总是两面性的:一切生命诞生于土地,最终要回归土地;创造的必然也拥有毁灭的能力。大母神也同样具有痛苦、恐怖、吞噬和危险的一面。

比如童话故事里面的女巫,其实就是大母神的另一面的体现,也就是恶母

糖果屋的故事讲的就是韩赛尔和格雷特被继母赶出家里,因为没饭吃了,然后进了森林发现了一个糖果屋,里面有个女巫,专门吃小孩子

然而如果我们仔细想想这个故事,会发现它没有那么简单

比如说,女巫真的是吃小孩子吗?如果女巫是个善良的老婆婆,无偿救助在森林里面困住的小孩子呢?

还有就是当韩赛尔和格雷特杀死了女巫,回到家中发现她们的继母也死了

这是否意味着她们实际上杀死的是她们的继母?

所以这个故事本质上讲的是她们杀了她们的母亲,也就是打败了大母神

很多神话故事里面都有打败大母神的情节

题目描述

你看到这里也许已经觉得由乃精神不正常了

然而由乃自从不小心##了自己的##后早就不正常了

由乃研究了很久大母神原型,但是仍然一脸懵逼

于是就出数据结构题骗钱去了

由乃:给你一个序列,每次询问一个区间是否是值域连续段

zzy:你把题意说详细点

由乃:就是说不能有重复数字,比如1 2 2 3就不行,然后4 2 3 1就可以

yql:sb分块

ddd:sb bitset

由乃:woc你们好树链啊,我。。我带修

zzq:#######sb题

由乃:我就是要出原题

给你一个序列a

每次两个操作:

1.修改x位置的值为y

2.查询区间l,r是否可以重排为值域上连续的一段

输入输出格式

输入格式:

第一行两个数n,m

第二行n个数表示a[i]

后面m行每行三个数opt x y,或者opt l r,代表操作

输出格式:

如果可以,输出“damushen”

否则输出“yuanxing”

输入输出样例

输入样例#1: 复制

5 5
1 2 3 4 5
2 1 5
2 2 3
2 3 3
1 3 6
2 3 5
输出样例#1: 复制

damushen
damushen
damushen
damushen

说明

对于30%的数据,n,m<=500

对于60%的数据,n,m<=100000

对于100%的数据,n,m<=500000

值域1e9

2s

#include<iostream>
#include<cstdio>
#include<map>
#include<algorithm>
#define maxn 500001
using namespace std;
int a[maxn],n,m,l,r,b[maxn],cnt;
int op,x,y;
bool flag;
map<int,bool>vis;
int main(){
freopen("Cola.txt","r",stdin);
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=m;i++){
scanf("%d%d%d",&op,&x,&y);
if(op==)a[x]=y;
if(op==){
flag=;
cnt=;
for(int j=x;j<=y;j++)b[++cnt]=a[j];
sort(b+,b+cnt+);
for(int j=,num=b[];j<=cnt;j++,num++){
if(b[j]!=num){
flag=;
puts("yuanxing");
break;
}
}
if(flag==)puts("damushen");
continue;
}
}
}

70分 暴力

#include<bits/stdc++.h>
const int yql=;
const int N=;
const int inf=0x7fffffff;
using namespace std;
typedef long long ll;
int n,m,a[N],mx,mn,x,y,inv;
ll ss,sum;
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
inline int fpow(int x,int p){
int ans=;
for(;p;p>>=,x=(1LL*x*x)%yql)if(p&)ans=(1LL*ans*x)%yql;
return ans;
}
inline int calc(int x){return 1LL*x*(x+)%yql*(x<<|)%yql*inv%yql;}
struct Segment_Tree{
#define lson (o<<1)
#define rson (o<<1|1)
int maxv[N<<],minv[N<<];
ll sumv[N<<],s[N<<];
inline void pushup(int o){
maxv[o]=max(maxv[lson],maxv[rson]);
minv[o]=min(minv[lson],minv[rson]);
sumv[o]=(sumv[lson]+sumv[rson])%yql;
s[o]=s[lson]+s[rson];
}
inline void build(int o,int l,int r){
if(l==r){maxv[o]=minv[o]=s[o]=a[l];sumv[o]=(1LL*a[l]*a[l])%yql;return;}
int mid=(l+r)>>;
build(lson,l,mid);build(rson,mid+,r);
pushup(o);
}
inline void change(int o,int l,int r,int q,int v){
if(l==r){maxv[o]=minv[o]=s[o]=v;sumv[o]=(1LL*v*v)%yql;return;}
int mid=(l+r)>>;
if(q<=mid)change(lson,l,mid,q,v);
else change(rson,mid+,r,q,v);
pushup(o);
}
inline void query(int o,int l,int r,int ql,int qr){
if(ql<=l&&r<=qr){
mx=max(maxv[o],mx);mn=min(mn,minv[o]);sum=(sum+sumv[o])%yql;ss+=s[o];
return;
}
int mid=(l+r)>>;
if(ql<=mid)query(lson,l,mid,ql,qr);
if(qr>mid)query(rson,mid+,r,ql,qr);
}
}T;
int main(){
n=read();m=read();inv=fpow(,yql-);
for(int i=;i<=n;i++)a[i]=read();
T.build(,,n);
while(m--){
int opt=read(),l=read(),r=read();
if(opt==)T.change(,,n,l,r);
else{
mx=;mn=inf;ss=;sum=;
T.query(,,n,l,r);
if(mx-mn==r-l&&(1LL*(mx+mn)*(r-l+))>>==ss&&(calc(mx)-calc(mn-)+yql)%yql==sum)puts("damushen");
else puts("yuanxing");
}
}
}

100分 线段树

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

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

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

  2. AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792

    由乃与大母神原型和偶像崇拜 思路: 逆元+线段树维护和+线段树维护平方和+线段树维护最大最小值: 代码: #include <bits/stdc++.h> using namespace ...

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

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

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

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

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

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

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

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

  7. 洛谷——P1966 火柴排队&&P1774 最接近神的人_NOI导刊2010提高(02)

    P1966 火柴排队 这题贪心显然,即将两序列中第k大的数的位置保持一致,证明略: 树状数组求逆序对啦 浅谈树状数组求逆序对及离散化的几种方式及应用 方法:从前向后每次将数插入到bit(树状数组)中, ...

  8. 洛谷 P1373 小a和uim之大逃离

    2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...

  9. 洛谷1373 小a和uim之大逃离

    洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...

随机推荐

  1. gradle_学习_00_资源贴

    一.官方资料 1.Gradle User Guide 中文版 二.精选资料 1.Gradle学习系列之一——Gradle快速入门 2.Gradle教程

  2. python生成excel格式座位表

    脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...

  3. codeforces 627B B. Factory Repairs(线段树)

    B. Factory Repairs time limit per test 4 seconds memory limit per test 256 megabytes input standard ...

  4. 幻想乡三连C:狂飙突进的幻想乡

    题解: 不难发现,对于每一条从$S$到$T$的路径,设其$x.y$的和为$S_x.S_y$,其对答案的贡献是$a\cdot S_x+(1-a)\cdot S_y$,这是一个关于$a$的一次函数.而所有 ...

  5. Asp.Net页面生命周期【转载,地址:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html】

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  6. javascript中eval()函数使用方法

    本教程主要重介绍eval()函数的语法与使用方法,及在后面我还补充了eval()解析json数据的相关例子,希望文章能帮助到各位深入理解eval()使用方法吧.   前几天说到js中尽量不要使用eva ...

  7. w3c上的SQL 教程---基本语法 语句学习

    SQL 教程路径:http://www.w3school.com.cn/sql/index.asp

  8. Poj 2350 Above Average(精度控制)

    一.Description It is said that 90% of frosh expect to be above average in their class. You are to pro ...

  9. MyBatis动态传入表名,字段名参数的解决办法---statementType用法

    statementType="STATEMENT" 要实现动态传入表名.列名,需要做如下修改 添加属性statementType="STATEMENT" 同时s ...

  10. netty中的Channel、ChannelPipeline

    一.Channel与ChannelPipeline关系 每一个新创建的 Channel 都将会被分配一个新的 ChannelPipeline.这项关联是永久性 的:Channel 既不能附加另外一个 ...