codeforces 119C Education Reform (dp+路径打印)

题意:

一个学校要排出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,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值