2022春每日一題 Day 26

2022-10-04 03:21:07 字數 1085 閱讀 2867

區間增加等差序列,似乎不好維護,等差等差,那就差分唄,單點查詢,更加肯定,直接差分,每次加了乙個等差序列容易發現只需要對應的差分陣列a[l]+=k,a[l+1]...a[r]+=d,a[r+1]-=(r-l)*d+k

查詢輸出a[1]+a[2]...a[p],然後用線段樹維護一下,這個題就做完了。(敲得也是十分順利,寫完直接過編譯還輸出了正確答案)(不開longlong見祖宗)

**:

#include #include #include #include #define ls(x) x<<1

#define rs(x) x<<1|1

const int n=1e5+5;

using namespace std;

int n,m,a[n];

namespace segment

smt()

}e[n<<2];

void update(int x)

void pushup(int x,int v)

void down(int x) }

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

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

build(ls(x),l,mid);

build(rs(x),mid+1,r);

update(x);

} void modify(int x,int l,int r,int v)

down(x);

int mid=(e[x].l+e[x].r)>>1;

if(l<=mid)

modify(ls(x),l,r,v);

if(r>mid)

modify(rs(x),l,r,v);

update(x);

} long long query(int x,int l,int r) }

using namespace segment;

int main()

else

}return 0;

}

2022春每日一題 Day 9

思維題,差分好題,每次區間操作,對應差分a l v,a r 1 v,在差分陣列中一定有乙個正負號抵消,那麼我們求出差分陣列中正數 負數 和,記做s1,s2。顯然,當s1,s2為0時,剩下的沒有歸0的元素只能與a 1 或a n 配,答案就是abs s1 s2 min s1,s2 也就是max s1,s...

2022春每日一題 Day 10

每次操作 c i 變成c i 1 c i 1 c i 那麼顯然,c 1 和c n 是不會改變的,因此只要c 1 和t 1 c n 和t n 不相等,一定是輸出no。接著分析,不妨設x c i 1 y c i z c i 1 那麼x,y,z的差分為x,y x,z y,進行操作後數列變為x,x z y,...

2022春每日一題 Day 22

光看題幾乎沒有思路,但是顯然到最後每個人手中一定有 d s n個糖果 s為所有人糖果總和 不妨設2號給1號x2個糖果,3號給2號x3個.1號給n號x1個,那麼顯然a1 x1 x2 d,a2 x2 x3 d 這不就是個n元n次方程組,但是不是,最後乙個方程組可以由前面的方程組推出來,因此我們試著用x1...