2020 China Collegiate Programming Contest, Weihai Site 补题

2023-12-09 10:38

本文主要是介绍2020 China Collegiate Programming Contest, Weihai Site 补题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • C - Rencontre
  • G - Caesar Cipher

补题链接

C - Rencontre

题目描述:

给出一棵 n n n 个节点的带权树,现在有三组数量分别为 m i m_i mi 的点集,现在从每组中等概率的从中各选一个点(三组相互独立),得到一个三元组 ( a , b , c ) (a,b,c) (a,b,c),并在树上找一个点 u u u,满足 u u u 到三点的树上路径和最小,求期望路径长度

1 ≤ n ≤ 2 ⋅ 1 0 5 , 1 ≤ w ≤ 1000 , 1 ≤ m i ≤ n 1 \leq n \leq 2 \cdot 10^5,1 \leq w \leq 1000,1 \leq m_i \leq n 1n2105,1w1000,1min

solution:

f ( a , b , c ) = m i n u ∈ T ( d i s t ( a , u ) + d i s t ( b , u ) + d i s t ( c , u ) ) f(a,b,c)=min_{u \in T}(dist(a,u)+dist(b,u)+dist(c,u)) f(a,b,c)=minuT(dist(a,u)+dist(b,u)+dist(c,u))

对于三元组 ( a , b , c ) (a,b,c) (a,b,c) 来说, f ( a , b , c ) f(a,b,c) f(a,b,c) 是固定的,可以表示为 f ( a , b , c ) = 1 2 ( d i s t ( a , b ) + d i s t ( b , c ) + d i s t ( a , c ) ) f(a,b,c)=\frac 1 2(dist(a,b)+dist(b,c)+dist(a,c)) f(a,b,c)=21(dist(a,b)+dist(b,c)+dist(a,c))

E ( f ( a , b , c ) ) = E ( 1 2 ( d i s t ( a , b ) + d i s t ( b , c ) + d i s t ( a , c ) ) ) = 1 2 E ( d i s t ( a , b ) ) + 1 2 E ( d i s t ( b , c ) ) + 1 2 E ( d i s t ( a , c ) ) E(f(a,b,c))=E(\frac 1 2(dist(a,b)+dist(b,c)+dist(a,c)))=\frac 1 2E(dist(a,b))+\frac 1 2 E(dist(b,c))+\frac 1 2E(dist(a,c)) E(f(a,b,c))=E(21(dist(a,b)+dist(b,c)+dist(a,c)))=21E(dist(a,b))+21E(dist(b,c))+21E(dist(a,c))

也就是说三个点两两之间的路径会产生贡献

有了上述结论 ,我们根据期望的一般套路之一,根据边的贡献线性相加期望

当且仅当一条边所在的内外两颗子树中存在不同点集的节点时,才会产生贡献

其实我们不需要直到上述结论也可以分析出来,一条边的如果有贡献,那么将其断开后两棵树之间一定存在不同点集的点

考虑维护子树中存在的各个点集的点的个数,设 s z ( u , i ) sz(u,i) sz(u,i) 代表子树 u u u 中类型 i i i 的点集的个数,对于一条边 e ( u , v , w ) e(u,v,w) e(u,v,w)(u 更靠近根节点)来说,它的贡献是 ∑ i ∑ j ! = i s z ( v , i ) ⋅ ( m j − s z ( v , j ) ) ⋅ m k [ i ! = k & j ! = k ] 2 \frac {\sum_i \sum_{j!=i} sz(v,i) \cdot (m_j-sz(v,j)) \cdot m_k [i!=k \& j!=k]} 2 2i</

这篇关于2020 China Collegiate Programming Contest, Weihai Site 补题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/473478

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

AtCoder Beginner Contest 370 Solution

A void solve() {int a, b;qr(a, b);if(a + b != 1) cout << "Invalid\n";else Yes(a);} B 模拟 void solve() {qr(n);int x = 1;FOR(i, n) FOR(j, i) qr(a[i][j]);FOR(i, n) x = x >= i ? a[x][i]: a[i][x];pr2(

CF Bayan 2015 Contest Warm Up B.(dfs+暴力)

B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/probl

CF Bayan 2015 Contest Warm Up A.(模拟+预处理)

A. Bayan Bus time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/problem/A The fi

AtCoder Beginner Contest 369 D - Bonus EXP 动态规划

原题链接: https://atcoder.jp/contests/abc369/tasks/abc369_d 思路:   这道题为什么要用动态规划呢,其实,对于第i个怪物,我们有打与不打两种处理方式,而对于打,我们是获得两倍的经验值,还是一倍的经验值,与我们打了奇数只怪物还是打了偶数只怪物有关了,因此我们定义dp[i][0] 为前i只怪物总共打了偶数次,dp[i][1] 为前i只怪物总

2020年SEO行业发展变化和趋势分析!

一、搜索引擎算法发展轨迹 第一阶段:人工目录(1997年-2001年“雅虎早期搜索模式”); 第二阶段:文本分析(2001年-2004年“以关键词和背景颜色一样,堆积大量关键词,就会有非常好的排名; 第三阶段:链接分析(2004年-2009年“以反向链接为核心算法的阶段”),这时行业内有句话是内容为王,外链为皇; 第四阶段:智能分析(2009年-现在“以满足用户人性化需求的用户浏览行为分析