Luogu 3792 由乃與大母神原型和偶像崇拜

2021-09-05 00:26:27 字數 1697 閱讀 1777

題面:題目太長怎麼往上放σ(☉▽☉"a

直接說做法吧

要問能不能使這一段區間內的數連續

首先想到的就是最大值減最小值是不是等於區間長度

但是元素可能是重複的

所以我們還要記乙個區間平方和

如果上面的情況已經不符合就直接輸出

否則再判斷一下區間平方和是不是相同

這樣就保證正確了

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define a 10000010

#define b 2010

using

namespace std;

typedef

long

long ll;

const

int inf =

1e9+

100;

struct nodetree[a]

;int n, m, opt, a, b, mxx, mxn, ttt;

void

update

(int k)

void

build

(int k,

int l,

int r)

int m =

(l + r)

>>1;

build

(k <<

1, l, m)

;build

(k <<1|

1, m +

1, r)

;update

(k);

}void

add_point

(int k)

int m =

(tree[k]

.l + tree[k]

.r)>>1;

if(a <= m)

add_point

(k <<1)

;else

add_point

(k <<1|

1);update

(k);

}void

ask_interval

(int k)

int m =

(tree[k]

.l + tree[k]

.r)>>1;

if(a <= m)

ask_interval

(k <<1)

;if(b > m)

ask_interval

(k <<1|

1);}

bool

check

(int l,

int r,

int ans)

intmain

(int argc,

char

const

*argv)

if(check

(mxn, mxx, ttt)

)puts

("damushen");

else

puts

("yuanxing");

}}return0;

}

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

無 n nn個數,若干組詢問,每一次詢問 l,r l,r l,r 中是否經過排序可以形成值域嚴格上公升的序列。顯然用分塊的思想 記錄上乙個和當前相等的數是否在當前塊外 很容易實現,參見hh的項鍊 有些類似,好像不是一回事,但我找不到之前做的這樣的題了 但時間複雜度卻承受不了。於是想到了線段樹來維護,...

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

題面傳送門 可以算一道線段樹維護hash的模板題了吧。hash要滿足兩個條件 相同的數hash值一定一樣與hash衝突盡量少。這道題hash序列可以用冪次方來hash 然後用線段樹隨便維護一下就好了。實現 include include define max a,b a b a b define m...

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

題意 給你n個數,q次詢問,每次詢問 有 題解 如果這題不帶修改,很多人都會想到,直接用主席樹維護乙個最大值最小值,然後查詢區間不同數的個數,如果不同數的個數等於maxn minn 1 那麼這個區間一定合法。主席樹比較麻煩?那就用線段樹維護乙個最大乙個最小值,乙個這個數第一出現的位置的最小值。如果 ...