NC19246資料結構

2021-10-25 17:03:45 字數 2577 閱讀 4655

輸入:

5 61 2 3 4 5

1 1 5

2 1 5

3 1 2 1

4 1 3 2

1 1 4

2 2 3

輸出:

思路:核心:線段樹

加法和求和省略不談了(線段樹基操,不會的話自己補一下~~

求平方和算個小套路吧:

假設區間每個元素加上x,求平方和

∑( ai + x)^2 == ∑(ai^2) +2 * x * ∑ai +區間長度 * (x^2) ,維護區間和即可,注意要先維護區間平方和再維護區間和,因為求區間平方和用到的區間和是修改前的區間和!

#include

#define ios std::ios_base::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0);

using

namespace std;

typedef

long

long ll;

const

int n=

10010

;int a[n]

;struct ty

tree[

4*n]

;void

pushup

(int p,

int l,

int r)

void

pushdown

(int p,

int l,

int r)

}void

bulid

(int p ,

int l ,

int r)

int mid=

(l + r)

>>1;

bulid(2

*p,l,mid)

;bulid(2

*p+1

,mid+

1,r)

;pushup

(p,l,r);}

void

change

(int p,

int l,

int r ,

int a,

int b,

int num)

if( tree[p]

.jia || tree[p]

.cheng!=1)

pushdown

(p,l,r)

;int mid =

(l+r)

>>1;

if( a <= mid )

change(2

*p, l,mid,a,b,num);if

( b > mid )

change(2

*p+1

, mid+

1, r,a,b,num)

;pushup

(p,l,r);}

void

cheng

(int p,

int l,

int r ,

int a,

int b,

int num)

if( tree[p]

.jia || tree[p]

.cheng!=1)

pushdown

(p,l,r)

;int mid =

(l+r)

>>1;

if( a <= mid )

cheng(2

*p, l,mid,a,b,num);if

( b > mid )

cheng(2

*p+1

, mid+

1, r,a,b,num)

;pushup

(p,l,r);}

ll findsum

(int p,

int l,

int r ,

int a ,

int b)

if( tree[p]

.jia || tree[p]

.cheng!=1)

pushdown

(p,l,r)

;int mid =

(l+r)

>>1;

ll res=0;

if( a <= mid )

if( b > mid )

return res;

}ll findping

(int p,

int l,

int r ,

int a ,

int b)

if( b > mid )

return res;

}int

main()

if( op ==4)

}}

NC14661 簡單的資料結構

因為要從隊頭隊尾插入刪除元素,可以用stl中的deque 雙端佇列 便於操作.這些是deque的一些基本操作 1.把x壓入後 前端 push back x push front x 2.訪問 不刪除 後 前端元素 back front 3.刪除後 前端元素 pop back pop front 4....

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...