洛谷P3792 由乃与大母神原型和偶像崇拜
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”
输入输出样例
5 5
1 2 3 4 5
2 1 5
2 2 3
2 3 3
1 3 6
2 3 5
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 由乃与大母神原型和偶像崇拜的更多相关文章
- p3792 由乃与大母神原型和偶像崇拜(思维+线段树)
要求 1.修改x位置的值为y 2.查询区间l,r是否可以重排为值域上连续的一段 可以,很lxl 然后一开始思考合并区间,但是发现可以重排序,GG 然后想了特殊性质,比如求和,但是显然可以被叉 这时候我 ...
- AC日记——由乃与大母神原型和偶像崇拜 洛谷 P3792
由乃与大母神原型和偶像崇拜 思路: 逆元+线段树维护和+线段树维护平方和+线段树维护最大最小值: 代码: #include <bits/stdc++.h> using namespace ...
- 【洛谷P3792】由乃与大母神原型和偶像崇拜
题目大意:维护一个序列,支持单点修改和查询一段区间能不能组成连续的一段数. 题解:查询区间能不能组成一段连续的数这个操作较为复杂,很难在较小时间复杂度内直接维护.这里采用线段树维护区间哈希的策略,即: ...
- LuoguP3792 由乃与大母神原型和偶像崇拜
题目地址 题目链接 题解 由乃题还是毒瘤啊orz 显然的一个结论是,如果保证不重复,维护区间min,max然后判断max-min+1==r-l+1是否成立即可 但是有重复 于是就要orz题解区的各位大 ...
- 「Luogu 3792」由乃与大母神原型和偶像崇拜
更好的阅读体验 Portal Portal1: Luogu Description 给你一个序列\(a\) 每次两个操作: 修改\(x\)位置的值为\(y\): 查询区间\([l, r]\)是否可以重 ...
- 洛谷P4014 分配问题【最小/大费用流】题解+AC代码
洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...
- 洛谷——P1966 火柴排队&&P1774 最接近神的人_NOI导刊2010提高(02)
P1966 火柴排队 这题贪心显然,即将两序列中第k大的数的位置保持一致,证明略: 树状数组求逆序对啦 浅谈树状数组求逆序对及离散化的几种方式及应用 方法:从前向后每次将数插入到bit(树状数组)中, ...
- 洛谷 P1373 小a和uim之大逃离
2016-05-30 12:31:59 题目链接: P1373 小a和uim之大逃离 题目大意: 一个N*M的带权矩阵,以任意起点开始向右或者向下走,使得奇数步所得权值和与偶数步所得权值和关于K的余数 ...
- 洛谷1373 小a和uim之大逃离
洛谷1373 小a和uim之大逃离 本题地址:http://www.luogu.org/problem/show?pid=1373 题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北 ...
随机推荐
- gradle_学习_00_资源贴
一.官方资料 1.Gradle User Guide 中文版 二.精选资料 1.Gradle学习系列之一——Gradle快速入门 2.Gradle教程
- python生成excel格式座位表
脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...
- codeforces 627B B. Factory Repairs(线段树)
B. Factory Repairs time limit per test 4 seconds memory limit per test 256 megabytes input standard ...
- 幻想乡三连C:狂飙突进的幻想乡
题解: 不难发现,对于每一条从$S$到$T$的路径,设其$x.y$的和为$S_x.S_y$,其对答案的贡献是$a\cdot S_x+(1-a)\cdot S_y$,这是一个关于$a$的一次函数.而所有 ...
- Asp.Net页面生命周期【转载,地址:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html】
一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面, 完全识别 HTTP 页 ...
- javascript中eval()函数使用方法
本教程主要重介绍eval()函数的语法与使用方法,及在后面我还补充了eval()解析json数据的相关例子,希望文章能帮助到各位深入理解eval()使用方法吧. 前几天说到js中尽量不要使用eva ...
- w3c上的SQL 教程---基本语法 语句学习
SQL 教程路径:http://www.w3school.com.cn/sql/index.asp
- Poj 2350 Above Average(精度控制)
一.Description It is said that 90% of frosh expect to be above average in their class. You are to pro ...
- MyBatis动态传入表名,字段名参数的解决办法---statementType用法
statementType="STATEMENT" 要实现动态传入表名.列名,需要做如下修改 添加属性statementType="STATEMENT" 同时s ...
- netty中的Channel、ChannelPipeline
一.Channel与ChannelPipeline关系 每一个新创建的 Channel 都将会被分配一个新的 ChannelPipeline.这项关联是永久性 的:Channel 既不能附加另外一个 ...