十一屆院賽 I題 我要10個G

2021-07-31 04:50:59 字數 1216 閱讀 6586

題目給出n個點,只有n-1條邊,而且都是連通的,那麼就可以得出是一棵樹。

那就變成了裸的樹剖。

套模板,完事。

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn 300050

struct edge

e[maxn*2];

struct node

tree[maxn*8];

int a[maxn];

int dep[maxn]; //節點深度

int fa[maxn]; //節點父親

int siz[maxn]; //以v為跟的節點數目

int son[maxn]; //v節點的重兒子

int top[maxn]; // v節點的重鏈的頂端

int head[maxn],cnt,pos,n,q; //鄰接表

void addedge(int st,int en)

void inti()

void dfs1(int u,int f,int d)

}}void pushup(int id)

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

int mid=(l+r)/2;

build(id*2,l,mid);

build(id*2+1,mid+1,r);

pushup(id);

}void update(int id,int x,int v)

if(l<=x&&x<=mid)

update(id*2,x,v);

else if(midr)

return 1e9;

return min(querymin(id*2,x,y),querymin(id*2+1,x,y));

}void getpos(int u,int sp)

}int findmin(int u,int v)

int main()

dfs1(1,0,0);

getpos(1,1);

build(1,0,pos-1);

while(q--)

else if(s==2)

else}}

return 0;

}

十一屆院賽 K題 志願者好萌哇

題意就不說了.直接考慮dp dp i j k 表示前 i 種物品,選取 j 個使用 k 張優惠券的最小花費。想一想轉移方程就很明顯了 dp i j k min dp i 1 j k min dp i 1 j 1 k p i dp i 1 j 1 k 1 c i 但是要過這個題還要加乙個優化。如何 k...

2020第十一屆藍橋杯7月省賽I題

題目描述 本題思路 這道題,暴力過30 的樣例,拿的了7分的樣子,要全過的話那得dp,寫數學式子分析,找到盡可能減少複雜度的方法。先上暴力 這道題暴力寫應該很容易的 include using namespace std const int n 1e5 10 typedef long long ll...

第十一屆藍橋杯省賽題 解碼

問題描述 小明有一串很長的英文本母,可能包含大寫和小寫。在這串字母中,有很多連續的是重複的。小明想了乙個辦法將這串字母表 達得更短 將連續的幾個相同字母寫成字母 出現次數的形式。例如,連續的 5 個 a,即 aaaaa,小明可以簡寫成 a5 也可能簡寫成 a4a aa3a 等 對於這個例子 hhhe...