(未写)tyvj-1333- Coder Space的邀请
传送门:http://new.tyvj.cn/Problem_Show.aspx?id=1333
啊。大有收获啊。好吧是我太弱。。
第一个,最多邀请人数
我方程写出来了。但是怪怪的我就把他给否定了。因为时间会爆啊??
但是题解说做些优化就可以了,但是一些极端数据不是一样会爆?
方程
f[i][j]表示小A花i时间小B花j时间邀请到的最多大牛
假设当前循环到第k位大牛
f[i][j]=max( f[i-timea[k]][j],f[i][j-timeb[k]] )
其中要保证时间连续性
第二个,最少时间
f[i][j][k]表示前i个大牛小A邀请j个花了k时间时 小B最少花的时间
f[i][j][k]=min( f[i-1][j][k]+timeb[i],
f[i-1][j-1][k-timea[i]] )
空间 n^2*maxtime
时间 O( n^2*maxtime )
题解中的优化:
如果A和C邀请某人的用时都超过了maxtime,那么久忽略这位牛别邀请他/她了
个人目前想到的优化:
因为要时间连续 所以记录目前小A和小B达到的最大时间,然后循环缩小上限
(应该可行,而且不受数据限制)