关于礼物分配问题
两兄弟Alan和Bob,共同分配n个礼物。每个礼物只能分给其中的一人,且不能分成两个。每个礼物i∈{1,…,n}的价值为vi,为一正整数。设a和b分别表示Alan和Bob所收到礼物的总价值,V==a+b为使两兄弟高兴,我们希望尽可能地均分这些礼物,即使得|a-b|达到最小。
(1)试设计一O(n? V)时间的动态规划算法,使得|a-b|达到最小,并求出礼物集合{1,…,n}的相应分割
(2)算法的输入为n个数的列表v1,v2。。。。,vn,假设所有数占用k位,试根据输入规模kn,分析你所设计的算法的运行时间 。
好恶心的第二问 完全没明白在说什么。
[解决办法]
因为传统的复杂度分析是写成输入长度的函数。这里就是问如果v1~vn总共占用k位的话,复杂度会写成关于k的什么函数。
[解决办法]
>k位的意思是个数个k个 还是说存储长度是k位
当然是后者
[解决办法]
第二问的目的就是为了告诉你这个算法不是强多项式算法,写成关于k的函数会变成指数的。
[解决办法]
依据题意,它应该默认时间复杂度为程序运行时间的