6道题,6道与概率计数相关的题,6道都涉及998244353这个魔性数字的题

Day1

T1:

给出一颗n个节点的二叉树,每个叶节点有一个权值(权值均不相同),每个非叶节点有一个概率P,表示:该点的权值有P的概率为它所有子节点中的最小值,同时有(1-p)的概率为所有子节点的最大值。
现在将根节点所有可能的权值从小到大排序,设分别为V1,V2,V3...VmV1,V2,V3...VmV_1,V_2,V_3...V_m
其一一对应的概率为D1,D2,D3...DmD1,D2,D3...DmD_1,D_2,D_3...D_m
现在求:

∑1≤i≤mi∗D2i∗Vi(mod 998244353)∑1≤i≤mi∗Di2∗Vi(mod998244353)

\sum_{1≤i≤m}i*D_i^2*V_i(mod\space 998244353)
数据范围:
对于40%的数据,n≤5000;
对于另外10%的数据,保证树的形态随机生成;
对于100%的数据,n≤100000(或300000?);

分析:

40分算法:O(n2)O(n2)O(n^2)暴力合并即可
特殊10分算法:因为树的形态随机,期望深度为log级,所以直接暴力枚举每个叶节点。
100分算法:把40分的用线段树启发式合并即可(有点卡常,很危险)。


T2:

有2*n张卡牌,其中n张为增益牌,卡的权值为W1,W2,W3..WnW1,W2,W3..WnW_1,W_2,W_3..W_n,另外n张为战斗牌,卡的权值为D1,D2,D3...DnD1,D2,D3...DnD_1,D_2,D_3...D_n,保证所有Wi,DiWi,DiW_i,D_i均为整数。从中随机抽取m张,使用其中的k张,使用规则为:每使用一张增益牌,所有战斗牌的权值乘上增益牌的权值,每使用一张战斗牌,即造成该牌的权值的伤害。
求所有情况下最大伤害之和mod 998244353。
数据范围:
多组输入数据
对于100%的数据,1<Wi<109,Di<1091<Wi<109,Di<1091
对于100%的数据,2n≤30002n≤30002n≤3000

分析:

Day1签到题,不难得到对于每种情况而言,先把能用的增益卡,按从大到小最多用k-1个,最后用尽量少的战斗卡,必然是最优策略。
按照这种策略,我们可以分开求抽到i张增益卡,m-i张战斗卡,将两者所有方案之和相乘,就得到我们需要的答案。
对于求用i张增益卡的所有情况的最大乘积之和,很容易计算,用一个背包加一个限制条件(不能超过k-1个)即可。
对于求用i张战斗卡的所有情况的最大和之和,相对要困难一些,不过对背包熟悉的同学也会觉得相当容易,我们只要按战斗卡的权值从小到大排序,假设当前求dp[i]dp[i]dp[i],枚举到的卡牌为jjj,
若k-m+i<2,则dp[i]=D[j]∗C(j−1,i−1)" role="presentation" style="position: relative;">dp[i]=D[j]∗C(j−1,i−1)dp[i]=D[j]∗C(j−1,i−1)dp[i]=D[j]*C(j-1,i-1)
否则dp[i]=D[j]∗C(j−1,i−1)+D[i−1]dp[i]=D[j]∗C(j−1,i−1)+D[i−1]dp[i]=D[j]*C(j-1,i-1)+D[i-1]
最后再O(m)O(m)O(m)枚举分别摸到i张增益卡,j张战斗卡的dp值,相乘之和就是答案

T3

本题代码量颇大,细节多,考场上无人得分(估计都觉得调第一题卡常更有趣)。
题目大意是一个类似于斗地主的游戏。
给出一些固定的手牌,假如你是地主,求在拥有这些牌的情况下,所有一定能打出春天(对方无论什么手牌,都无法出一张牌)的方案数(mod 998244353),地主总牌数为20张。
具体出牌规则我记不太清,基本与斗地主想同,但有些出入。

分析:

这道题也没什么好说的,首先农民不可能有双王,也就意味着地主手上必有一王
然后分农民是否拥有炸弹这两种情况:
若农民有炸弹,那么地主必须先出一堆比他大的炸弹,最后一次性出完所有手牌。这种情况较少,很容易枚举出来
若农民无炸弹,也就意味着地主必须拥有从1到k的每张牌至少一张,再加上一王的约束,已经有14张牌确定了。最后6张暴力枚举,加一些剪枝,每种情况check一下即可。

Day2

T1:

我们知道求一个图的最大独立集问题是完全NP问题。尽管现在并没有严格的多项式复杂度的算法,但有很多近似多项式复杂度的算法。现在有一种算法是这样的:
随机得到一个从1到n的排列,从前向后处理,若当前位置的点可以加入我们目前的假设最大独立集,就加入它,否则忽略它,处理后一位。
求这样一种算法能得到最大独立集的概率 (mod 998244353)。
数据范围:
对于100%的数据,n≤20

分析:

Day2签到题
O(2n)O(2n)O(2^n)复杂度记忆化搜索所有情况,每种情况表示:若为1,则该点选入当前假设最大独立集,若为0,则该点可能未访问,可能与当前的假设最大独立集矛盾。
每次枚举一个新加入的点,假设有m个可加入的点,其中能达到当前状态最大独立集(即局部最大独立集)的方案是加入点a1,a2,...aka1,a2,...aka_1,a_2,...a_k,其能达到局部最大独立集的概率分别为d1,d2,...dkd1,d2,...dkd_1,d_2,...d_k,当前状态能达到局部最大独立集的概率即为

ds=∑d2(i−1)+smds=∑d2(i−1)+sm

d_s=\frac {\sum d_{2^{(i-1)}+s}} {m}
最终答案即为 d0d0d_0

T2:

猎人游戏,每个猎人有一个威胁值Wi(Wi为正整数)Wi(Wi为正整数)W_i(W_i为正整数),每个猎人死亡时,有Wi∑j(存活)WjWi∑j(存活)Wj\frac {W_i} {\sum_{j(存活)}W_j}的概率打中i号猎人,随后i号猎人又会开枪,直到全部死亡。
现在由你来开第一枪,开枪的规则与猎人相同。
求1号猎人最后死亡的概率。
对于30%的数据,∑Wi≤20∑Wi≤20\sum W_i≤20
对于50%的数据,∑Wi≤5000∑Wi≤5000\sum W_i≤5000
对于100%的数据,∑Wi≤100000∑Wi≤100000\sum W_i≤100000

分析:

这道题我目前仍不清楚正解。。。
据说要用到NTT什么的乱搞。。。。

T3:

在一棵树上,从x点出发,每次随机走一条相邻的边。有Q次询问,每次询问给出一个大小为k的点集,求能遍历完所有点集中的点的期望步数。
对于20%的数据,n≤5,Q≤5
对于另外10%的数据,保证k=1
对于100%数据,n≤18,Q≤5000

分析:

对于这道题,我终于能感谢感谢当时教练扔给我那一大堆概率题了,很容易发现,这道题应该是概率状压DP,但是不满足无后效性,怎么办呢。。。高斯消元(把转移方程当方程来解)。这和之前做过的一道概率题很像,因此我才能拿到10分。。30分的暴力写丑wa了。
正解有很多,但有一些也是用高斯消元做的。我印象很深刻,据说是CF之前有一次也有一个类似的题目,当时也是在树上做高消,但是要求复杂度只能有O(n)O(n)O(n),因为是树,所以从后往前做就能在近似O(n)复杂度内通过(我还没来得及研究,这是大体思路)。

总结:

这次还好把大众分都拿到了,但有些关键的骗分没骗到,这也是遗憾。不过反正那些老师教练都没怎么看好我,也无所谓了。总之,这场比赛我个人认为不够全面,6道题全是计数类问题,对不擅长这类题目的同学很不友好(szp),不过也说明了一个趋势:北大正在努力地想出一些思维难度大的题目,而不是往年那些裸的数据结构题,但是可能由于准备不充分,或者他们认为计数类题目最能反映人的思维能力,这次的计数类题目制霸全场,但并不意味着计数类题目今后的考试仍然会如此热门。但是题目对思维的要求是明显在提升的。

【总结】北大2018冬令营题目总结相关推荐

  1. 2018冬令营模拟测试赛(九)

    2018冬令营模拟测试赛(九) [Problem A]王子 试题描述 不是所有王子都会遇见自己的中关村,主公,公主. 从前有个王子姓王,王王子遇到了一位美丽的公主,她的名字当然是公公主啦. 王王子对公 ...

  2. 2018冬令营模拟测试赛(一)

    2018冬令营模拟测试赛(一) [Problem A]全面战争不可避 试题描述 补充说明:铁路毁坏指的是这条铁路彻底消失了,不会对之后的询问造成影响(即询问之间是独立的) 输入 输出 输入示例1 5 ...

  3. 2018冬令营模拟测试赛(十八)

    2018冬令营模拟测试赛(十八) [Problem A]Table 试题描述 输入 见"试题描述" 输出 见"试题描述" 输入示例 见"试题描述&qu ...

  4. 外校保研北大计算机,北大2018年本校保研率超53% 外校生多来自双一流名校

    作为国内最高学府,北大一直是很多学生心中神圣的学术殿堂.每年的高考,更是只有各省的前几十名才有机会被北大学录取.尽管很多外校本科生错过了高考考入北大的机会,但是他们依然通过读研,实现了求学北大的梦想. ...

  5. CCF 2018年题目题解 - Python

    2018年刷题目录 2018年12月 201812-1 小明上学 题目链接: 代码: 易错点需注意点: 201812-2 小明放学 题目链接: 代码: 易错点需注意点: 201812-3 题目链接: ...

  6. 清华北大2018届毕业生去向统计

    本文来源:C9高校2018年毕业生就业质量报告.澎湃新闻(何利权) 近日,清华大学.北京大学两所高校相继公布就业质量年度报告,披露2018届毕业生的就业率及去向. 根据两校公开数据,2018年,北京大 ...

  7. JZOJ[5971]【北大2019冬令营模拟12.1】 party(1s,256MB)

    题目 题目大意 给你一棵树,在树上的某一些节点上面有人,要用最小的步数和,使得这些人靠在一起.所谓靠在一起,即是任意两个人之间的路径上没有空的节点(也就是连在一起). N ≤ 200 N \leq 2 ...

  8. 北大ACM原创题目:母牛的故事(距离推理)

    母牛的故事 从前有一个农夫,他的名字叫做约翰.他养了很多很多头母牛.突然有一天,一只调皮的母牛走丢了,农夫要尽快的抓住她,不然她就又跑掉了!现在我们将问题简单化.假设农夫和母牛都站在一条数轴上,农夫开 ...

  9. 2018面试题目总结1

    1.HTTP和socket.websocket的区别 首先要了解网络七层:物 数 网 传 会 表 应, 如图: HTTP 协议:超文本传输协议,对应于应用层,用于如何封装数据. TCP/UDP 协议: ...

最新文章

  1. Java Reflection(十):数组
  2. pc端汽车obd软件下载?_常用的ERP软件电脑端下载
  3. ios web input 内边阴影
  4. C语言高级技巧-在Makefile中引用你的头文件
  5. 【LeetCode】5.最长回文子串
  6. java udp包_基于UDP协议的数据包收发程序(代码+报告)Java
  7. JZOJ 5914. 盟主的忧虑
  8. [Java]进程与线程的区别(转)
  9. 这几个概念你可能还是没搞清require、import和export
  10. 线性规划 (一) 线性规划的基本形式及各种概念
  11. APICloud开源O2O商城源码
  12. 编程语言-什么是低级语言?
  13. oracle优化之driving_site
  14. 多边形的定义为什么要强调封闭图形_多边形的定义及其定理
  15. 关于Kaggle入门Titanic的一次简单尝试Part 2 -- Dive into ML
  16. flac格式歌曲如何转换成mp3格式,flac转mp3详细图文教程
  17. 漫画:国内都有哪些程序员大牛?
  18. 基于搜狗微信爬取微信公众号的文章
  19. 简单的学生成绩管理系统
  20. HTTP请求中POST与GET的区别

热门文章

  1. iOS VoIP PushKit 的问题
  2. left join不起作用
  3. init函数及其使用(go语言基础语法)
  4. Photoshop插件-charIDToTypeID-PIStringTerminology.h-不同值的解释及参考-脚本开发-PS插件
  5. python导入上级目录_Python导入上一级/下一级/任一级目录下的.py文件问题
  6. 快速原型模型(Rapid Prototype Model)
  7. H5企业微信如何返回到菜单页?
  8. APP运营精华:6种营销推广模式
  9. python requests 乱码
  10. 王兴的无限游戏和美团的三维文明世界|一点财经