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

浙公网安备 33010602011771号