SDOI2016 遊戲題解

2022-08-26 21:39:25 字數 1193 閱讀 8546

這道題太噁心了,調了我整整一晚上,

結果發現是乙個bi——錯誤,多多捂臉

這道題比之前的題多了乙個初始化和區間查詢的操作,

主要是區間查詢噁心

因為要區間查詢,所以必須維護區間最低點,

修改和查詢操作被改得面目全非。

我們要維護的話,必須從現值,子值,新值,具體的不好多說:

看**吧:

#include#define ll long long

#define lc x<<1

#define rc x<<1|1

using namespace std;

const int n=1e5+6;

const ll inf=123456789123456789ll;

int n,m,cnt=0,d[n],ff[n],siz[n],top[n],son[n],num[n],head[n];

int t1,t2,opt,s,tt,lca,dfn=0;

ll kk,bb,t3,dis[n],w[n];

struct treet[n<<2];

struct edgee[n<<1];

inline void add(int u,int v,ll w)

inline ll read()

while(ch>='0'&&ch<='9') t=(t<<3)+(t<<1)+(ch-48),ch=getchar();

return f*t;

}void dfs(int x,int fa)

inline ll f(tree u,ll v)

void update(int l,int r,int p,int q,ll k,ll b,int x)

ll query(int l,int r,int p,int q,int x)

if(p<=mid) ans=min(ans,query(l,mid,p,q,lc));

if(q>mid) ans=min(ans,query(mid+1,r,p,q,rc));

return ans;

}void lj_update(int x,int y,ll k,ll b)

ll lj_query(int x,int y)

int lca(int x,int y)

int main()

return 0;

}

題解 SDOI2016 征途

link 題目大意 給定序列,將它劃分為 m 段使得方差最小,輸出 s 2 m 2 乙個整數 text 這題我通過題解中的大佬部落格學到了一般化方差柿子的寫法。下面來推柿子 s 2 frac n x i overline 2 frac sum n x i 2 n frac n x i 2 2 sum...

SDOI2016 硬幣遊戲

題目 翻硬幣遊戲啊 首先對於這類遊戲只要滿足如下的規則,就可以用一種特殊的方式解決了 我們假定只能翻正面朝上的硬幣 我們可以根據某些約束條件的翻硬幣 一次反掉連續幾個,或者具有某些特殊性質的 但是翻掉的硬幣中最右邊的那個比如是從正面反到反面 誰不能翻硬幣了誰輸 對於滿足這樣的特徵的硬幣遊戲,我們有這...

洛谷 SDOI2016 遊戲

初見安 這裡是傳送門 洛谷p4069 sdoi2016 遊戲 這題真的是咕了好幾個月了終於過了,然後又咕了幾個星期才來寫部落格 題意很簡單,每次讓你在一條路徑上放乙個等差數列,問你某點上數的最小值。這就是乙個李超線段樹的模板題了。我們樹上利用樹剖開一棵線段樹,維護每一段等差序列的最小值就好。接下來看...