hdu5239Doom 線段樹 找規律

2021-09-30 13:23:16 字數 1076 閱讀 8847

//給出n個資料 , 對於每次[l,r]

//操作,s加上[l,r]區間的所有數

//之和,並且將[l,r]區間的所有數

//都平方

//輸出s%9223372034707292160

//打表可以發現對於每個數在做一定操作

//後其值一定不變

//所以只需要維護乙個標記就行

#include

#include

#include

using

namespace

std ;

const

int maxn = 1e5+10 ;

typedef

unsigned

long

long ll ;

const ll mod = 9223372034707292160 ;

#define left v<<1

#define right v<<1|1

struct node

tree[maxn<<2] ;

ll mul(ll a , ll b)

a += a ;

if(a >= mod)a-=mod ;

b >>= 1 ;

}return c ;

}void push_up(int v)

void build(int l , int r , int v)

int mid = (l + r) >> 1 ;

build(l , mid , left) ;

build(mid+1 , r , right) ;

push_up(v) ;

}ll update(int l , int r , int v)

int mid = (tree[v].l + tree[v].r) >> 1 ;

ll ans = 0 ;

if(l <= mid)

if(r > mid)

push_up(v) ;

return ans ;

}int main()

}return

0 ;}

HDU5239 線段樹,找規律,快速乘法

題意是給n個數,m個詢問,每次輸出之前的值加上此時詢問區間的值,然後區間的數字都平方。坑點是模數很大,需要把平方轉化成類似快速冪的加法。include using namespace std define maxn 111111 define pl c 1 define pr c 1 1 defin...

hdu 預處理 線段樹)

給n個數,m個詢問,問任意區間內與其它數互質的數有多少個 比如3個數1 2 4,詢問 1,3 那麼答案是1 千萬要記住,這樣的題目,如果你不轉變下,使勁往線段樹想 雖然轉變之後,也說要用到線段樹,但是維護的東西不同了 那麼會發現這樣的題目,區間與區間之間是無法傳遞資訊的,區間與區間是無法傳遞資訊的,...

初步線段樹 hdu1166

include include includeusing namespace std define max 50000 struct node node maintree 4 max void settree int n,int l,int r int main printf case d n tt...