原题 问题描述 操场边,运动会没有项目的同学也没闲着,经过几天的研究,他们发明了一个很有意思的字符串配对游戏,两位同学准备两张白纸,第一个同学在纸上写一个整数N和一个由小写字母组成的字符串S,将S重复N次后产生一个更长的字符串A;相应的,第二个同学也在纸上写一个整数M,一个由小写字母组成的字符串T,接着他把T重复M次产生字符串B.并且保证字符串A和B的长度相等:这时候,如果A中的第i个字符与B中的第i个字符相同,则称为字符配对成功.给定N.M.S.T,请编写一个程序求A和B的成功配对的字符数.…
题面:PDFhttp://xn--gwt928b.accoders.com/pdf/10248/10248.pdfhttp://xn--gwt928b.accoders.com/pdf/10248/10248.pdf A 给定一棵 n 个点的有根树,节点编号为 1~n,根节点为 1.你会不停地重复 以下操作,直到所有点被覆盖为止:等概率随机树上的一个未被覆盖的点,并 覆盖这个点到根路径上的所有点.请问你的期望操作次数是多少?为了避免高 精度运算,你只需要输出答案对 998244353 取模后的结…
day05-java-(方法,猜字符小游戏) 1.方法:  1)用于封装一段特定的逻辑功能  2)方法应尽可能的独立,只干一件事  3)方法可以被反复的调用多次  4)避免代码重复,有利于代码的维护,有利于团队的协作开发 2.方法的定义:    修饰词 返回值类型 方法名(参数列表){      方法体    } 3.方法的调用:  1)无返回值: 方法名(有参传参);   2)有返回值: 数据类型 变量 = 方法名(有参传参);              方法名(有参传参);------不建议…
游戏效果如下图所示: 规则: 在4X5的格子中,有随机的互不相等的10个数,每个数据有两份(也就是20个数,有两两相等的十对),随机分布在20个格子中.游戏开始,弹出二十个数的序列.每次点击格子会显示当前格子中的数据并暂时保留显示,直到下一次点击,如果下一次点击显示的数据与保留的数据不同,则之前点击保留的数据会消失(仍然存在于该格子但不显示).如果连续点击显示的两个数据一样,则两个数据都会显示并且不会再消失. 直到所有数据都通过连续点击相同数据的方式显示出来,就算游戏结束,报出游戏用时.此时可以…
二次联通门 : LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 /* LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 概率dp */ #include <cstdio> #include <iostream> ; char Buf[BUF], *buf = Buf; inline void read (int &now) { ; !isdigit (*buf); ++ buf); + *buf - ', ++ buf); } #defin…
n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 首先容易想到用概率算期望,p[i][j][k]表示已加入i个数,1有j个,总长为k的概率.(显然栈中一定是先一些0再是1). 考虑优化,容易想到f[i][j]表示已加入i个数,1有j个时,栈中的期望元素个数. 讨论下一个放入的数是0还是1,直接转移即可. 每次转移是状态是f[i]=(f[k]+1)*p[k][i],其中k是能到达i的所有状态,p[k][i]是i由k转移到的概率(…
题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数,四舍五入保留三位小数. 样例输入 10 样例输出 4.168 题解 概率期望dp 显然任何时刻栈中的元素自底至顶一定是若干个0+若干个1. 但是如果设状态$p[i][j][k]$表示前$i$次操作,栈中$j$个0,$k$个1的概率,复杂度是$O(n^3)$的,显然会TLE. 注意到$0$的个数对状态…
题目 显然期望dp. 简单想法: f[i][j]表示前i个人中向右看并且没有被消除的人数的概率 如果第i+1个人是向右,$f[i+1][j+1]=f[i][j]/2$ 如果第i+1个人是向左,$f[i+1][j-1]=f[i][j]/2$ 最后期望总和是$\sum_{i=0}^{n} i*f[n][i]$ 转移没有问题,但容易发现这样算出来的期望剩余人数没有算上向左看的. 什么意思呢?我们都知道期望=数量(人数)*概率,但这里dp只设了向右看的人数状态,虽然也包括了所有向左看的情况,但最后算期望…
题意:有一个栈,随机插入 $n$ 次 $0$/$1$ 如果栈顶是 $1$,然后插入 $0$,则将这两个元素都弹出,否则,插入栈顶. 求:$n$ 次操作后栈中期望的元素个数. 我们发现,按照上述弹栈方式进行,栈中元素一定是由若干个连续 $0$ 加上若干个连续 $1$ 组成. 而 $1$ 所在的联通块还在栈顶,所以我们只需考虑 $1$ 的个数即可. 令 $f[i][j]$ 表示 $i$ 次操作过后,栈中有 $j$ 个 $1$ 时期望的元素个数. 由于期望在任何时候都有可加性,所以 $f[i+1][]…
题目 流行的跳棋游戏是在一个有mn个方格的长方形棋盘上玩的.棋盘起初全部被动物或障碍物占满了.在一个方格中,'X'表示一个障碍物,一个'0'-'9'的个位数字表示一个不同种类的动物,相同的个位数字表示相同种类的动物.一对动物只有当它们属于同一种类时才可以被消去.消去之后,他们所占的方格就成为空方格,直到游戏结束.要消去一对动物的前提条件是:这对候选动物所在的方格必须相邻,或它们之间存在一条通路.棋盘上一个方格只和其上下左右的方格相邻.一条通路是由一串相邻的空方格组成.路的长度则是通路中空方格的数…