深圳做网站推广优化,电子商务营销推广方案,企业网址怎么做,com天堂网这个成段的编写复杂度很低#xff0c;不需要加大空间复杂度#xff0c;便于处理成段加#xff0c;询问每个位置的值的操作#xff1a; #include bits/stdc.h
using namespace std ;
typedef long long ll ;
typedef long double ld ;
typedef unsigned long long u… 这个成段的编写复杂度很低不需要加大空间复杂度便于处理成段加询问每个位置的值的操作 #include bits/stdc.h
using namespace std ;
typedef long long ll ;
typedef long double ld ;
typedef unsigned long long ull ;
#ifdef _WIN32
#define LLD %I64d
#else
#define LLD %lld
#endif
#define pi (acos(-1.0))
#define F first
#define S second
#define lson (o1),l,mid
#define rson (o1|1),mid1,r
#define MP make_pair
const double eps 1e-9 ;
const int inf 0x3f3f3f3f ;
const ll INF (ll)4e18 ;const int M (int)1e510 ;
struct BIT {ll u[M] ;int n ;void clr(int _n) { n _n ;memset (u,0,sizeof(int)*(n1)) ;}void add (int x , ll v) {for (; xn ; x x-x) u[x] v ;}void add (int l , int r , ll v) {add(l,v) ; add(r1,-v) ;}ll get (int x , ll ret0) {for (; x0 ; x - x-x) ret u[x] ;return ret ;}
}bit ;int main () {int a[20] {0,3,7,4,8,9,11,5,4,9,1} ;for (int i1 ; i10 ; i) printf (%-4d , a[i]) ; puts ();bit.clr (10) ;for (int i10 ; i0 ; i--) {a[i] a[i]-a[i-1] ;bit.add(i,i,a[i]) ;}for (int i1 ; i10 ; i) printf (%-4d,a[i]) ; puts ();for (int i1 ; i10 ; i) printf (%-4d , bit.u[i]) ; puts () ;int Q ;scanf (%d , Q) ;while (Q --) {int x ;scanf (%d , x) ;printf (%d\n , bit.get(x) ) ;}return 0 ;
}转载于:https://www.cnblogs.com/get-an-AC-everyday/p/5438755.html