回 帖 发 新 帖 刷新版面

主题:发道算法题,我不会,请大家帮个忙!

1.我校每年投入一定资金搞基本建设,假定已知在过去n 年中各年的投入资金分别为 A[1], A[2]……A[n](万元),希望知道是否存在一个连续若干年的投资之和为M(万元),即是否存在I,j,满足1≤i≤j≤n,使A[i]+A[i+1]+……A[j]=M(万元)  设计算法对该问题求解并给出时间复杂度.如要求算法的时间复杂度不超过O(n),你将如何设计算法并分析。


2.兄妹二人得到了N件礼物,价值分别为V1、V2、V3….Vn(均为整数),二人欲公平瓜分这些礼物,即要使得各自所得的价值总和的差最小,是利用动态规划法设计一个伪多项式时间的算法完成此任务,分析时间复杂度。


请各位大虾帮我做做:)谢谢啊

回复列表 (共1个回复)

沙发

1.统计a[1]+...+a[i]计入b[i],研究b[j]-b[i-1]中有哪个=M。鉴于a[i]均正,所以b[i]递增,这样就能在O(n)解出哪个i,j使得b[j]-b[i-1]==M,即a[i]+...+a[j] == M
2.背包问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册