1001

题意:给出一个无向图,其中边有两种,附魔和没附魔的。初始在1号点,状态为没附魔,每次会等概率随机挑选一条边走,当经过附魔边时,状态会改变(附魔->没附魔,没附魔->附魔),问走k步后到达n号点状态为附魔的概率。

比赛时,我错误的认为走出每条路径的概率都是相等的,一个反例如下:

路径1-2-5的概率为,而路径1-3-5的概率为

首先讲一下官方题解做法:

最终答案为:走k步到n且状态为附魔的概率/任意走k步的概率

显然任意走k步的概率为1,所以只需求出分子。我们发现,如果没有状态,是很容易求出1到n的概率,所以我们可以将状态转化到点上:将每一个点拆成两个,附魔点和没附魔点,代表当前的状态。若一条边时附魔边,则将对应的一点的附魔点于另一点没附魔点相连,若是普通边,则将对应的附魔点和没附魔点相连。

这样转化后,我们发现只需求出1号没附魔点到n号附魔点的概率就行了。

复杂度

接下来是我比赛时的做法:

还是求走k步到n且状态为附魔的概率,设数组表示从i到j,且满足在j点是状态为附魔的概率,表示从i到j的概率,但对在j点的状态没有限制。

考虑矩阵乘法中的一次转移,枚举了从i到j的一个中间点k,(转移后的)可以直接加上,那么考虑,有两种情况,从i到k时变成附魔,而从k到j状态不变,概率为,对应的,另一种情况的概率为,两种情况相加即可。

复杂度同样为

1003

题意:有n台电脑,其中第k台电脑坏了,有m个交换方式依次进行,问对于1~n,使得最后坏的电脑交换到这个位置,最少放弃几次操作

我们可以定义一个状态表示前i个操作,交换到j的最小代价(即最少放弃几次操作)

对于每个交换,与其无关的剩下n-2个电脑是否放弃此次操作并无关系,所以为使代价最小,此次不放弃,即

而对于a,如果执行此次交换操作,那么代价为,而如果放弃,则代价为,取两者较小值即可

利用滚动数组优化空间,复杂度为

2021 年百度之星·程序设计大赛 - 初赛一相关推荐

  1. 2021 年百度之星·程序设计大赛 - 初赛二 1001 签到(找规律,快速幂)

    solution 找规律 #include <iostream> #include <algorithm>using namespace std;const int mod = ...

  2. 2021 年百度之星·程序设计大赛 - 初赛二 1003 魔怔(并查集,联通性,欧拉回路)

    problem solution 发现除了起点和终点,剩下所有点周围的边都会被恰经过偶数次,所以这些点初始连向了偶数条白边. 考虑由白边连接形成的图,每个连通块中度数为奇数的点一定为偶数个. 所以起点 ...

  3. 2021 年百度之星·程序设计大赛 - 初赛二 1005 水题(贪心结论)

    problem solution 开始还以为是CF987E,但是奇偶性并不一样,,结果是个贪心乱搞..样例都没过交了能过,醉了. #include<bits/stdc++.h> using ...

  4. 2021 年百度之星·程序设计大赛 - 初赛二 1002 随机题意(区间贪心)

    problem 随机题意 Accepts: 1411 Submissions: 3641 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32 ...

  5. 2021 年百度之星·程序设计大赛 - 初赛一 1001 :迷失(DP+Floyd快速幂优化)

    迷失 Accepts: 221 Submissions: 1479 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 ...

  6. 2021 年百度之星·程序设计大赛 - 初赛一(1006/毒瘤数据结构题)

    原题跳转 树状数组记录前 i 项1的个数,当前缀和query(i) == i时,说明前 i 项满足要求, 对于op == 1的情况,如果对应位置为0(sum[i] - sum[i - 1] == 0) ...

  7. HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))

    Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  8. hdu6383(2018 “百度之星”程序设计大赛 - 初赛(B))

    p1m2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Sub ...

  9. hdu6380(2018 “百度之星”程序设计大赛 - 初赛(B))

    degree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

  10. hdu6375(2018 “百度之星”程序设计大赛 - 初赛(A))

    度度熊学队列 Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total S ...

最新文章

  1. App Store 申请审核加速
  2. iMeta:西农韦革宏团队焦硕等-土壤真菌驱动细菌群落的构建(全文翻译/PPT/视频解读)...
  3. python从入门到精通视频教程百度云-let's python从入门到精通视频教程
  4. php 打印测试技巧
  5. MySQL中用decimal的原因
  6. 你最想要的圣诞礼物是什么?
  7. PHP正则匹配效率,PHP 正则表达式效率 贪婪、非贪婪与回溯分析(推荐)
  8. WebHelper类
  9. Win10系统下安装ubuntu系统
  10. Java性能优化权威指南-读书笔记(一)-操作系统性能监控工具
  11. 最常用的Linux命令大全
  12. 计算机毕业论文指导过程记录表6,毕业论文指导记录表范文
  13. [精简]托福核心词汇102
  14. 计算机网络实验一:网线制作
  15. 最新彻底禁止win10自动更新
  16. 如何查看网页元素的名称ID和其他信息
  17. 云队友丨顶级高手,如何进行系统思考?
  18. 随机函数(随机取数)
  19. 【产品设计】用户画像模板
  20. 【安全】漏洞挖掘之王的传奇人生

热门文章

  1. LOL登录后黑屏,主界面一直加载解决办法
  2. Android gallery 3D效果
  3. CSV 导入SQL Server(bulk insert方式)
  4. 声网 直播SDK小结
  5. 思考Hadoop权威指南的一段话
  6. 只需三分钟小白也能学会!新手做自媒体,音乐拼接一晚200多
  7. 管理信息系统开发项目管理
  8. 笨方法学Python
  9. 计算机机房的荷载,​计算机信息中心机房建设标准
  10. 3.PCIe协议分析1-预备知识点