計蒜客2019 12提高組月賽

2021-10-14 15:25:19 字數 1849 閱讀 8279

這道題目考察的主要是貪心的構造方法,唯一的難點就在於奇數的特殊處理

所以可以得到期望數量為

直接求個4的逆元一乘就做出來了

這道題目其實是樹上差分很常見的乙個思路——拆邊

想要快速的計算一些邊的和,我們把題目中的幸運邊在兩個點上+v,在兩點之間的路徑-v即可

然後就運用樹上差分實現求點權和邊權的和

**

#includeusing namespace std;

const int maxn=3e5+5;

typedef long long ll;

int n,m,q;

struct eedge

e[maxn<<1];

int head[maxn],cnt;

void add(int x,int y)

int lowbit(int x)

struct qzh

} ll query(ll x)

return res;

}}point,edge;

int f[maxn][20],dep[maxn],dfs_time,in[maxn],out[maxn];

void dfs(int u,int fa)

out[u]=dfs_time;

}void init_lca()

int lca(int x,int y)

ll sump[maxn],sume[maxn];

void calc(int u)

}int main()

mk[now]=1;

}void build()

else tr[u][i]=tr[fail[u]][i]; }}

int f[2][maxn][2];

void dp()

} for(int i=1;i<=cnt;i++)

if(!mk[i])

(((ans+=f[m&1][i][0])%=mod)+=f[m&1][i][1])%=mod;

}int main()

build();

dp();

printf("%d\n",ans);

return 0;

}

計蒜客 5月入門賽 A B C D

計蒜客資訊學5月入門賽 題目要求不再敘述了 a 注意 資料型別 long long include includeusing namespace std define ll long long const int maxa 1e3 10 ll a,b,c,d int main b include i...

F csgo(計蒜客 聯盟周賽)

題目描述 著名第一人稱射擊遊戲 csgo 因其優秀的平衡性,爽快的射擊感和科學的戰術配比贏得了世界廣大玩家的好評。在一局遊戲中,分為兩個陣營,他們的目標就是消滅全部的對方敵人。現在你是其中的一名玩家,不幸的是,你突然遭遇了許多個站成一橫排,身高不同的敵人。這種時候,用 瞄準對方的頭部進行 爆頭 一擊...

分為互質組 計蒜客 1216

題目鏈結 這是一道搜尋題 分為互質組。題目 蒜頭君給定 n 個正整數,將它們分組,使得每組中任意兩個數互質。至少要分成多少個組?輸入格式 第一行是乙個正整數 n。1 n 10。第二行是 n 個不大於 10000 的正整數。輸出格式 乙個正整數,即最少需要的組數。sample input 614 20...