题意:
一个学校要排出n天的课程表,有m个课程,每天有且只能一个课程,给出每个课程需要做的作业量的范围(a[i]——b[i]),和难度。要求n天的课程要按难度递增,并且相邻两天的作业量要满足x[i]=x[i-1]+k或者x[i]=x[i-1]*k。问如何排课程表使得总作业量最大。
题解:
dp[i][j][k]表示到第i天位置,第i天选了j课程,作业量为j+a[i],因为a[i]可以达到10^6,但是b[i]-a[i]不超过100,相当于优化了内存。
接着直接dp就好,需要存下路径,pre[i][j][k] 用结构体,存两个变量一个是选择的课程编号,一个是作业量-a[i]。
这样做数据各种都过,极限数据也过,但是就是wa,四个小时的心酸使。
之后发现排序完序号会乱了,所以加个ID,