ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Google Code Jam 2022 Qualification Round

2022-04-04 02:35:01  阅读:336  来源: 互联网

标签:度数 Code 可以 然后 子树 Jam 随机 2022 节点


Punched Cards

字符串模拟。

3D Printing

对于每一个颜色分量,因为3个打印机都要可行,所以取3个打印机中的最小值。

如果4个分量的最小值之和大于等于\(10^6\),那么可行,输出方案的话就是能加就加,反正只要求和为\(10^6\);否则无解。

d1000000

排个序,贪心用小的骰子去填小的坑,能填就填。

Chain Reactions

前3题有点水,这题难度一下子上来了。

Test Set 1

\(O(n!)\)枚举,然后模拟一下。

Test Set 2

首先,给出来的关系图其实是一个森林,每棵树都可以单独解决,然后答案相加。

然后考虑动态规划解决每棵树的问题。

记\(dp_u\)为以\(u\)为子树的答案,然后子树可以先选择一个叶子节点,然后不断向上跳到根,产生多个可以递归解决的子树,还有一个触发这个叶子节点产生的贡献,两个部分相加即为此时子树的答案。

可以枚举子树所有的叶子节点,执行上述操作,然后取最大值就是\(dp_u\)。这样结合记忆化搜索,复杂度大概是\(O(n^2)\),对于这个测试集够了。

Test Set 3

我们可以将每个节点的答案看成两个部分,第一次触发产生的贡献,和触发过程中产生的新的子树。

上一个测试集是枚举了第一个部分,但是其实可以不用枚举,因为从\(u\)到其儿子之间的转移,其实就是选一个儿子,然后利用\(u\)去优化子树。这一步如果贪心地选择第一部分更小的儿子的话,可以最好的利用\(u\)。

这样就可以直接\(O(n)\)树形DP做了。

Twisty Little Passages

GCJ就是会有这种奇奇怪怪但是有意思的题目。

直接随机化,每次随机tp到一个节点,然后记录他的度数。这其实就是一个采样,然后就可以用样本估计全局,就是样本的平均度数约等于全局的平均度数,这样就可以估计出没有访问到的节点的度数和。然后对于无向图,边数等于度数和的一半,这样就估计出了全局边数了。

但是这样的话,会有一个问题,就是有极少部分点他偏离比较大,少到随机到这部分点的概率很低,这种情况就可能会出问题。具体有两种可能,可能绝大部分点的度数很大但少部分很少,或者反过来。

对于第一种情况,其实还好,因为题目是可以有误差的,然后他度数小吧对答案的影响也小,所以可以忽略。

对于第二种情况,这种情况就没办法忽略了。但是,注意到,因为这种点的度数大,所以很容易随机到它的邻接节点。然后如果从它的邻接节点随机走一步是很容易走到它的。考虑重复tp到同一个点\(C\)次,每次tp完再随机走一步。\(C\)随便取了个30就过了。

这样就覆盖所有情况了。

标签:度数,Code,可以,然后,子树,Jam,随机,2022,节点
来源: https://www.cnblogs.com/zengzk/p/16098230.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有