51NOD
文章平均质量分 87
满赋诸机
这个作者很懒,什么都没留下…
展开
-
51NOD-1391 01串(预处理&&枚举)
能想到枚举x的位置,求以x为分割点的区间的最大长度,但是不知道应该如何处理出x向左延伸的最大长度和x+1向右延伸的最大长度看了题解后才明白令串中的0代表数-1,1代表数1①求l[i]时(下标从1开始),sum[i]表示区间[1,i]的和若sum[i]<0:l[i]=i若sum[i]>=0:如果在[1,i-1]内存在sum[j]=sum[i]+1且j最小,则l[i]=i-(j+1)+1-i-j,否则l[i]=-1②求r[i]时(下标从1开始),sum[i]表示len+区间[1,i]的和若sum[i原创 2016-06-03 18:21:00 · 763 阅读 · 0 评论 -
51NOD-1670 打怪兽(排列组合)
大致思路:临走时粗略地看了一下题目,半路上才发现没看数据范围,而且没注意怪兽的能量值是0~n-1还是题目给定,就先按照0~n-1想了一下,结果很快就想出来了又想如果能量值是题目给定该怎么做,发现这样不过是前者的加强版,也能运用排列组合轻松解决首先知道期望计算公式为:E=∑p[i]*i; (i表示游戏结束时能量,p[i]表示游戏结束时能量为i的概率)而 p[i]*n! 表示游戏结束时能量为i的方案数,所以用排列组合计算达到能量为i时的方案数即可模拟打怪兽的过程,设当前能量为energy,能量达到en原创 2016-06-03 22:42:55 · 2020 阅读 · 0 评论 -
51NOD-1405 树的距离之和(树形DP)
首先可以想到在O(n)内用树形DP求出某一点到其他所有点的距离和设dp[u]表示以结点u到其子树所有结点的距离和,cnt[u]表示包括u在内的子树中所有结点个数,v为u的子结点,则有:原创 2016-06-10 13:07:26 · 997 阅读 · 0 评论 -
51NOD-1483 化学变换(贪心)
看了题目第一反应是求二进制表示下的最长前缀,然后第一个存在不一样的index位,则结果数位数最长为index,则ans=min{cnt(i)} (i<[0,index]); cnt(i)表示将所有数变成二进制位数为i时所需的最小操作。不知道该如何证明这样做的正确性...看到还有人用枚举的方法做,貌似还更快一点...原创 2016-06-05 21:45:59 · 819 阅读 · 0 评论