摘要:
题目大意:在一个树形迷宫中,以房间为节点。有n间房间,每间房间存在陷阱的概率为ki,存在出口的概率为ei,如果这两种情况都不存在(概率为pi),那么只能做出选择走向下一个房间(包括可能会走向上一个房间)。根节点为1,当遇到陷阱时必须返回到根节点1处重新开始,当遇到出口时,走出迷宫。问从开始到走出迷宫 阅读全文
摘要:
题目大意:一款新游戏注册账号时,有n个用户在排队。每处理一个用户的信息时,可能会出现下面四种情况: 1.处理失败,重新处理,处理信息仍然在队头,发生的概率为p1; 2.处理错误,处理信息到队尾重新排队,发生的概率为p2; 3.处理成功,队头信息处理成功,出队,发生的概率为p3; 4.服务器故障,队伍 阅读全文
摘要:
题目大意:一个跳棋游戏,每置一次骰子前进相应的步数。但是有的点可以不用置骰子直接前进,求置骰子次数的平均值。 题目分析:状态很容易定义:dp(i)表示在第 i 个点出发需要置骰子的次数平均值。则状态转移方程为: dp(i)=singma(pk*dp(i+k))+1 (如果在 i 处必须置骰子才能前进 阅读全文
摘要:
题目大意:有3个骰子,各有k1,k2,k3个面,面值为1~ki。还有一个计数器,初始值为0,统计所有的面值和。每次同时置这三个骰子,如果第一个骰子的朝上的值为a、第二个值为b、第三个值为c,那么将计数器置为零。直到计数器的值大于n时结束,求次数的期望值。 题目分析:这道题的状态转移方程不难写。定义状 阅读全文
摘要:
题目大意:有n种bug,m个程序,小明每天能找到一个bug。每次bug出现的种类和所在程序都是等机会均等的,并且默认为bug的数目无限多。如果要使每种bug都至少找到一个并且每个程序中都至少找到一个bug,小明平均需要找几天? 题目分析:定义状态dp(i,j)表示找到了 i 种程序,并且出现在了 j 阅读全文
摘要:
题目大意:有n颗地雷分布在一条直线上,有个人的起始位置在1,他每次前进1步的概率为p,前进两步的概率为1-p,问他不碰到地雷的概率。 题目分析:定义状态dp(i)表示到了dp(i)的概率,则状态转移方程为dp(i)=p*dp(i-1)+(1-p)*dp(i-2)。要想安全通过x(i)到达x(i)+1 阅读全文
摘要:
题目大意:有n个任务,已知做每件任务所需的时间,并且每件任务都对应一个系数fi。现在,要将这n个任务分成若干个连续的组,每分成一个组的代价是完成这组任务所需的总时间加上一个常数S后再乘以这个区间的系数和。求最小代价。 题目分析:分组求最优值得问题。不过,这道题采用倒推可能要好做一些。定义状态dp(i 阅读全文
摘要:
题目大意:将n个数分成若干组,并且每组的数在原数组中应是连续的,每组会产生的代价为sum(i)-sum(j)+i-j-1-m,m为已知的常数。求最小代价。 题目分析:定义dp(i)表示将前 i 个元素分好组后产生的最小代价,状态转移方程很显然了: dp(i)=min(dp(j)+[sum(i)-su 阅读全文
摘要:
题目大意:将n个数分成若干个区间,每个区间的代价为区间和的平方加上一个常数m,求最小代价。 题目分析:定义状态dp(i)表示前 i 个数已经分好的最小代价,则状态转移方程为 dp(i)=min(dp(j)+(sum(j)-sum(i))^2)+m <1>。将这个方程整理一下得到: dp(i)=min 阅读全文
摘要:
题目大意:将两个二进制数的GCD用二进制数表示出来。 题目分析:这道题可以用java中的大数类AC。 代码如下: 不过,也可以用二进制来求GCD。 gcd(a,b)=gcd(a/2,b/2)*2 (a,b均为偶数) gcd(a,b)=gcd(a,b/2) (a为奇数,b为偶数) gcd(a,b)=g 阅读全文