随笔分类 -  ACM_动态规划

摘要:通道思路:dp[i][j][k]:k步时,A到i行,B到j行的最大值代码:#include #include using namespace std;int maxPath(vector > &num) { const int m = num.size(); const int n = ... 阅读全文
posted @ 2015-10-02 20:24 mithrilhan 阅读(187) 评论(0) 推荐(0)
摘要:通道思路:可以发现这序列是一段上升一段下降的锯齿形。先考虑拿到所有正数,此时如果段数大于m,考虑怎么最小代价减少段的数量,从 负数和最小的开始合并?而且要考虑负数和超过正数和的情形,注意特殊情况是这段和为0时,并不需要合并,直接跳过。减小个数的方案是,要么这段大于0,去掉这个及左右2边,并合并,这样... 阅读全文
posted @ 2015-10-01 19:20 mithrilhan 阅读(638) 评论(0) 推荐(0)
摘要:通道思路:连续上升,连续下降的值放到set里面,然后对于大于m的集合双向链表进行合并,合并肯定是找绝对值最小的合并。代码:#include #include #include #include using namespace std;typedef long long ll;const int N ... 阅读全文
posted @ 2015-10-01 15:35 mithrilhan 阅读(302) 评论(0) 推荐(0)
摘要:通道思路:先求一下从第一位开始的到第i位的累加,4,-1,5,-2,-1,2,6,-2=>4386571311对这个累加的数列排个序,然后只要判断邻近的两个数是否可以组成序列,比如4和3就不可以,因为4>3而4对应下标为0,3对应为1。4和5就可以,然后相同的前缀和取id最小,一开始丢个(0,0)进... 阅读全文
posted @ 2015-10-01 12:34 mithrilhan 阅读(196) 评论(0) 推荐(0)
摘要:通道思路:dp[i]由dp[i-1]而来,统计小于a[i]的位置k,且dp[k]+1=dp[i]的所有个数即可。代码:#include #include #include using namespace std;typedef long long ll;template inline bool rd... 阅读全文
posted @ 2015-09-30 16:27 mithrilhan 阅读(474) 评论(1) 推荐(0)
摘要:通道题意:给出n个数,n-1个操作方法,求(n-1)!的操作顺序得到的和是多少思路:代码:#include #include #include using namespace std;typedef long long ll;template inline bool rd(T &ret) { ... 阅读全文
posted @ 2015-08-18 19:12 mithrilhan 阅读(130) 评论(0) 推荐(0)
摘要:通道题意:从1开始 每次等概率从一个点到和他相邻的点 有向 走到不能走停止 求停止时每个点的期望思路:白书P156代码:#include #include #include #include using namespace std; const int N = 105; co... 阅读全文
posted @ 2015-08-15 23:02 mithrilhan 阅读(238) 评论(0) 推荐(0)
摘要:通道题意:一群猴子围成圈,每个猴子互相不认识,猴王要给大家互相认识,每个猴子认识别人需要一个时间花费,而且A猴子认识B猴子,则A猴子认识的所有猴子和B猴子认识的所有猴子都能认识,这个代价为所有AB猴子认识的猴子的时间花费和。思路:运用动态规划,枚举每个区间的分割点,从而找到最小花费。因为题目中给出的... 阅读全文
posted @ 2015-08-15 12:34 mithrilhan 阅读(409) 评论(0) 推荐(0)
摘要:通道题意:n*m的字符矩阵,每次只能向右或向下走,求从(1,1)走到(n,m)的路径中有多少个回文。思路:我们可以从两端开始走。dp[i][j][k]:分别走i步(也可以理解为半径为i),A到达j行,B到达k行的回文数。走的半径逐渐减少即可。可以知道第x1行只能由前一次的x1行或x1+1行转移,第x... 阅读全文
posted @ 2015-08-14 13:14 mithrilhan 阅读(198) 评论(0) 推荐(0)
摘要:通道题意:1个人在数轴上来回走,以pi的概率走i步i∈[1, m],给定n(数轴长度),m,e(终点),s(起点),d(方向),求从s走到e经过的点数期望思路:E[x] = sum((E[x+i]+i) * p[i])(i∈[1, m]) ,(走i步经过i个点,所以是E[x+i]+i)E[x] = ... 阅读全文
posted @ 2015-08-12 21:28 mithrilhan 阅读(164) 评论(0) 推荐(0)
摘要:通道题意:有n种卡片,吃零食的时候会吃到一些卡片,告诉你在一袋零食中吃到每种卡片的概率,求搜集齐每种卡片所需要买零食的袋数的期望思路:假设S状态中为1的数位表示还没有拿到的卡片,那么每次可能会拿到这其中的某一张卡片,也可能拿到原来已经拿到的卡片,还可能一张卡片也拿不到后两种情况的状态不变。dp[0]... 阅读全文
posted @ 2015-08-12 21:06 mithrilhan 阅读(140) 评论(0) 推荐(0)
摘要:通道题意:吸血鬼在一个洞穴遍地的地方,他拥有初始战斗力,如果战斗力大于了洞穴的c值他就能花时间逃出去,否则他的战斗力增加c,然后随机选择下一个要去的洞穴,问他出去所花时间的期望思路:设dp[v] ,表示当能力值为v的时的期望。所以方程很容易写了,dp[v] = sum{ ti/n }(v直接逃出去)... 阅读全文
posted @ 2015-08-12 20:58 mithrilhan 阅读(130) 评论(0) 推荐(0)
摘要:通道题意:有m个位置,每个位置填入一个数,数的范围是1~n,问至少有L个位置的数一样的概率思路:总数是n^m,我们求没有L个位置一样的数的概率 * 设 dp[i][j]表示用前i个数,填充j个位置的方案数(要符合没有L个位置是一样的数) * dp[i][j]=dp[i-1][j]+Sigm( dp[... 阅读全文
posted @ 2015-08-12 20:39 mithrilhan 阅读(205) 评论(0) 推荐(0)
摘要:通道题意: n个盒子里装有礼物,m个人随机选择礼物,选完之后空盒子放回,问选中的礼物数的期望思路:dp[i]表示第i个人得到礼物的概率,第i个人得到礼物的概率:假如第i-1个人没有得到礼物,那么i得到礼物的概率和i-1一样。假如第i-1个人得到了礼物,那么i得到礼物的概率是i-1得到礼物概率减去1/... 阅读全文
posted @ 2015-08-12 16:18 mithrilhan 阅读(123) 评论(0) 推荐(0)
摘要:通道题意:有n个人排队等着在官网上激活游戏。Tomato排在第m个。对于队列中的第一个人: 1、激活失败,留在队列中等待下一次激活(概率为p1) 2、失去连接,出队列,然后排在队列的最后(概率为p2) 3、激活成功,离开队列(概率为p3) 4、服务器瘫痪,服务器停止激活,所有人都无法激活了。... 阅读全文
posted @ 2015-08-12 15:41 mithrilhan 阅读(167) 评论(0) 推荐(0)
摘要:通道题意:飞行棋,从0到n,置骰子,置到几就往前走几步,前进中会有捷径,比如2和5连到一起了,那你走到2时可以直接跳到5,最后问跳到n时平均置几次骰子思路:dp[i]:到达i是,离终点的期望次数代码:#include #include #include using namespace std;con... 阅读全文
posted @ 2015-08-12 15:02 mithrilhan 阅读(124) 评论(0) 推荐(0)
摘要:通道题意:一颗树对于在点i有3种情况:1:被杀死回到点1 --- 概率为ki,2:找到出口退出----慨率为ei,3:和该点相连有m条边,随机走一条,求从点1开始到退出的平均需要走的边数思路: 设 E[i]表示在结点i处,要走出迷宫所要走的边数的期望。E[1]即为所求。 叶子结点: E... 阅读全文
posted @ 2015-08-12 15:00 mithrilhan 阅读(159) 评论(0) 推荐(0)
摘要:通道题意:有三个骰子,分别有k1,k2,k3个面。每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。当分数大于n时结束。求游戏的期望步数。初始分数为0思路:假设dp[i]表示拥有分数i到游戏结束的期望步数则 (1):dp[i]=SUM(p[k]*dp[i+k])+p[0]... 阅读全文
posted @ 2015-08-12 14:07 mithrilhan 阅读(211) 评论(0) 推荐(0)
摘要:通道题意:一个软件有s个子系统,会产生n种bug某人一天发现一个bug,这个bug属于一个子系统,属于一个分类每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n,问发现n种bug,每个子系统都发现bug的天数的期望思路: dp[i][j]表示已经找到i种bug,j个系统的bug,达到... 阅读全文
posted @ 2015-08-12 13:27 mithrilhan 阅读(112) 评论(0) 推荐(0)
摘要:通道题意:每次走一步的概率是p,走两步的概率是1-p,然后有n个点上有地雷。问YYF走过雷区的概率是多少思路:dp[i]=p*dp[i-1]+(1-p)dp[i-2]转移矩阵: ans[i] | p ,1-p | ans[i-1] =| | *ans[i-1] | 1 ,... 阅读全文
posted @ 2015-08-11 21:50 mithrilhan 阅读(145) 评论(0) 推荐(0)