递推计数-hdu-4747-Mex

该博客详细介绍了HDU 4747问题的解题思路,即如何通过动态规划求解所有区间内未出现的最小非负整数和。博主首先引用了其他大神的博客作为参考,然后补充解释了递推关系,强调了在计算过程中考虑大于等于当前数的值对区间和的影响,并提供了具体的区间更新策略。最后,博主给出了实现算法的代码。
摘要由CSDN通过智能技术生成

题目链接

http://acm.hdu.edu.cn/showproblem.php?pid=4747

题目大意:

给n个数,求所有区间内没有出现的最小非负整数和。

解题思路:

首先感谢大神博客:http://www.cnblogs.com/xin-hua/p/3325154.html可以解释的太少了。

我再解释一遍。

首先要明白,以i结束的所有区间的值的和记为f[i]肯定不超过以i+1结束的所有区间的值的和记为f[i+1]。

所以可以根据f[i]间接推出f[i+1],记第i个数为sa[i],显然只用考虑大于等于sa[i]的数j对f[i]=f[i-1]+?的影响,。如果j出现在1~i-1区间中,比较j最晚出现的位置与覆盖完全的1~j-1的最小位置的较小位置k,那么区间j的前一次出现的位置到k位置这个区间内所有点到i位置的值都+1.

这样逐次累加,直到不影响为止。

代码:

#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#inc
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值