板子題
按照ppt所說的,預留0號位和n+1號位,0號位位於2的若干次方的位置。
但是我試了一下。。。沒有嚴格要求的這樣的寫法,這題也能a,資料有點水。
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define qcin; ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define pb push_back
#define mp make_pair
#define clr(x) memset(x,0,sizeof x)
#define fmax(x) memset(x,0x3f,sizeof x)
#define finit(x) memset(x,-1,sizeof x)
#define iio(n,m) io(n),io(m)
#define ls(p) (p<<1)
#define rs(p) ((p<<1)|1)
#define dis(l,r) r-l+1
#define gstr(str) scanf("%s",str)
#define glen(str) strlen(str)
using namespace std;
namespace input
inline char inputchar()
templateinline void io(t &ret)
if(neg)
ret = -ret;
}typedef long long ll;
typedef pairpll;
const int maxn = 1e6+10;
const int mod = 1e8+7;
const ll inf = 1e18;
typedef ll arr[maxn];
typedef char str[maxn];
void file(int x)}
const long double pi = acos(-1);
arr sum,l,add;
int n,q,m,op,l,r,k,d;
void upd(int ql,int qr,int k,int d)
}ll qry(int p,ll res=0)
int main()else
}return 0;
}
P1438 無聊的數列
無聊的yyb總喜歡搞出一些正常人無法搞出的東西。有一天,無聊的yyb想出了一道無聊的題 無聊的數列。k峰 這題不是傻x題嗎 維護乙個數列,支援兩種操作 1 1 l r k d 給出乙個長度等於r l 1的等差數列,首項為k,公差為d,並將它對應加到a l a r 的每乙個數上。即 令a l a l ...
P1438 無聊的數列
無聊的yyb總喜歡搞出一些正常人無法搞出的東西。有一天,無聊的yyb想出了一道無聊的題 無聊的數列。k峰 這題不是傻x題嗎 維護乙個數列,支援兩種操作 1 1 l r k d 給出乙個長度等於r l 1的等差數列,首項為k,公差為d,並將它對應加到a l a r 的每乙個數上。即 令a l a l ...
P1438 無聊的數列
區間問題,肯定是線段樹了,但是區間加的是乙個等差數列,怎麼辦呢 我們可以通過差分來維護。蛤是差分?搞乙個陣列專門差分,在陣列中記錄 對於l r的區間加x,在l位置加上x,在r 1位置減去x。當查詢某個數值時,該位置上的數加上差分陣列中1 該位置的字首和,自己出組數試一下發現這樣是對的 我們線段樹剛好...