玲瓏杯 20 造物主的戒律

2021-08-07 16:25:45 字數 2045 閱讀 5033

題目鏈結

題意給乙個序列每次詢問給l,r,x,k1,k2,每次查詢區間中小於等於x的所有數字裡面第k1小的值以及大於x的所有數字裡面第k2小的值,如果不存在,輸出-1

每次輸出兩個數,對於每個數如果不存在,則單獨輸出-1

主席樹模板題,找出≤x的個數p,然後查詢區間第k1 , k2+p小的數字。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define long long long

const

int inf=0x3f3f3f3f;

const long mod=1e9+ 7;

const

double pi=acos(-1.0);

#define clri(x) memset(x,-1,sizeof(x))

#define clr0(x) memset(x,0,sizeof x)

#define clr1(x) memset(x,inf,sizeof x)

#define clr2(x) memset(x,-inf,sizeof x)

#define eps 1e-10

#define lson l , mid , rt<< 1

#define rson mid + 1 ,r , (rt<<1)+1

#define root 1, n , 1

const

int maxn = 4e5 ;

struct treetree[maxn *30+ 30];

int n , n ;

int a[400100] ;

int root[400100] ;

int tot = 0;

int num[400100] ;

void push_up(int rt )

int build(int l, int r)

int mid = (l + r) / 2;

tree[rt].l = build(l , mid ) ;

tree[rt].r = build(mid + 1, r) ;

push_up(rt) ;

return rt ;

}int hash()

int update(int l ,int r , int rt , int x)

int mid = ( l + r ) / 2;

if( x <= a[mid])

tree[now].l = update(l , mid , tree[now].l ,x) ;

else

tree[now].r = update(mid + 1, r , tree[now].r , x) ;

push_up( now ) ;

return now ;

}int que1( int l , int r , int r_rt ,int l_rt , int k )

int que2(int l ,int r ,int r_rt , int l_rt , int x)

int mid = (l + r) / 2;

if(a[mid] >= x)

return que2(l , mid , tree[r_rt].l , tree[l_rt].l , x) ;

else

return tree[tree[r_rt].l].val - tree[tree[l_rt].l].val + que2(mid + 1 , r , tree[r_rt].r , tree[l_rt].r , x ) ;

}int main()

return

0 ;}

玲瓏杯1141 fft計數

1141 喵哈哈村的智慧型大師丶 嫵鈳取玳 月 time limit 1s memory limit 256mbyte submissions 173solved 41 description 丶 嫵鈳取玳 月是月大叔的id,他是乙個智商高達429的智力大師,最擅長的技能就是搞事。今天他又要開始搞事...

「玲瓏杯」ACM比賽 Round 23

a 生是脂肪的人 time limit 2s memory limit 128mbyte submissions 263solved 97 description 給定乙個整數n,輸出 10 n 7 的個位數。其中 abs n 1e18 input 第一行是乙個正整數t 1 t 100 表示資料組數...

玲瓏杯」ACM比賽 Round 11 待補

題目 官方題解 直接貼上了,沒過的題以後再補 儘管不太可能qaq 第一題 直接列舉所有可能的x並且計算答案,得出最優解 水題,忽略 第二題 可以連線的兩個工廠相當於可以匹配的兩個點,那麼問題轉化為求兩個串的最長公共子串行,但o n 2 的複雜度會超時,由於第二個串每個點最多只有6個點與之匹配,所以可...