摘要:
还是看了little_w大神写的才知道怎么写,看完发现自己题意也理解错了,里面有个neighboring,意思就是你指定任务的时候指定的是原序列中连续的一段然后就是怎么DP了,新学了个很好的dp模型 dp[i][j]表示前i个robot已经分担了j个任务是否可行,可行为1,不可行为0.所以对于某个当... 阅读全文
摘要:
哎。这个题想了好久,状态不对啊。。。一个大家都出的题。。当时想到肯定是可以有什么规律来暴力,不用算到10的10次方对于某个k,x。从1到k循环,每次求一个新的x,这个x要大于等于原x,并且要是i的倍数。。。一直觉得有规律可循,后来知道就是倍数,我们设倍数为 b, 则b2*(i+1)>=b1*(i);... 阅读全文
摘要:
算最多十条链,能截取某前缀段,每种方案都可以算出一个权值,每种方案的概率都是总数分之一,问最后能构成的所有可能方案数。对计数原理不太敏感,知道是DFS先把链求出来,但是想怎么统计方案的时候想了好久,其实因为只能取某个链的前缀,所以直接取链长加+1 然后相乘即可,当然因为会出现都是空的那种情况,要去掉... 阅读全文
摘要:
统计一个只由大写字母构成的字符串的,子串数目,这里指的是子串不是子序列,可以不连续,请注意然后我按照计数DP的思想,dp[i][j]表示长度为i的子串,最后一个字母为j然后为了去重,每一次dp的时候,记录这个时候最后一位所在的位数,而且之前用一个后缀记录之后有没有该字母,这样每次,从上一次的j所处的... 阅读全文
摘要:
给定两个01序列,每次操作可以任意改变其中的m个数字 0变 1 1 变 0,正好要变化k次,问有多少种变法dp模型为dp[i][j],表示进行到第i次变化,A,B序列有j个不同的 变法总和。循环k次,每次针对m,向那j个不同 分1-j个即可,不过要用到组合数,因为对每个数操作不同都不一样最后结果就是... 阅读全文
摘要:
还是强连通分量的题目,但是这个题目不同的在于,问你最少要添加多少条有向边,使得整个图变成一个强连通分量然后结论是,找到那些入度为0的点的数目 和 出度为0的点的数目,取其最大值即可,怎么证明嘛。。。我也不好怎么证,不过细细一琢磨发现就是这样,改天找聪哥一起探讨下怎么证明#include #inclu... 阅读全文
摘要:
一开始我还天真的一遍DFS求出最长链以为就可以了不过发现存在有向环,即强连通分量SCC,有向环里的每个点都是可比的,都要分别给个集合才行,最后应该把这些强连通分量缩成一个点,最后保证图里是 有向无环图才行,这个时候再找最长链,当然缩点之后的scc是有权值的,不能只看成1,缩点完了之后,用记忆化搜索D... 阅读全文
摘要:
比赛的时候想了一个自认为对的方法,WA到死,然后还一直敲下去,一直到晚上才想到反例找是否存在解比较好找,这种左右括号序列,把(当成1,把)当成-1,然后从前往后扫,+1或者-1 遇到?就当初(,然后如果扫到最后 中间没有出现负数说明左括号没问题然后同样的方法从后往前扫,判断右括号那里是不是有问题即可... 阅读全文
摘要:
给定一个数字序列,最多可以删除k个数字(就相当于链表删除操作,删除后左右序列连接),问,和值最大是多少,题目所指的和值为 相等的连续数字的和比如 1 1 2 1 1 1,原本的和值为3(三个连续的1),如果允许删除一次,则我把2删除,则和值为5(5个连续的1)首先,最后能造成结果最大的,只有一个数字... 阅读全文
摘要:
终于是解决了这个题目了不过不知道下一次碰到主席树到底做不做的出来,这个东西稍微难一点就不一定能做得出离散化+扫描线式的建树,所以对于某个坐标二分找到对应的那颗主席树,即搜索出结果即可(因为是扫描线式的建树,找到对应的树之后,就知道该点上面的线段有多少条了)其他就是普通主席树的操作了主席树里面维护两个... 阅读全文