Decision
Description
在XMU信科有一个神经病名叫XXX,他到了大三才突发奇想想要出国,众所周知,XMU的规章制度中规定出国的绩点需要计算必修课、院选和校选的加权平均。由于XXX已经大三下了,他的必修课和院选课都已经快修完了,于是他为了自己低的可怜的绩点,决定在小学期疯狂Gank校选,企图在最后的总绩点上能加个0.1,这样对于申请有不可描述的帮助。
现在他已经知道了小学期整个学校将要开设的校选课程共有N门,并且假设这N门课程的时间都不冲突,还从学长学姐那了解到选修第i门课程能够对自己的最终成绩产生Impact[i]的效果(这个效果可正可负,正则表示该门校选能够对XXX的绩点有积极作用,能提升最后的绩点,负则表示该门课程对XXX的绩点有消极作用,会拉低最后的绩点)
但是他又发现一个问题,学校有一部分校选由于是专业性较强的课程,可能需要在修这门课之前先修若干先导课程(必须全部选完该课程的先导课程才能够修该课程,挂科也行23333),XXX发现有的课程的先导课程还有先导课程(如选3需要先选2,选2需要先选1),这对于自己只剩下1个学期的事实非常不利,所以他铤而走险,将选课系统中的代码略加美化,使得同时修一门课程和该课程的先导课程也视为可行(如选3需要先选2,选2需要先选1,原则上必须在上一个学期修完1,才能在这个学期修2,才能在下个学期修3,现在可以在同一个学期修1 2 3,但是不能在该学期只修2 3而不修1)
做完了(情节需要,违法违纪,请勿模仿的)美化操作后,他由于精神压力过大,放弃了思考,于是他想请你帮他规划一下大四的校选课的选课策略,使得最终的绩点能够尽量高(对绩点的影响Impact[i]的和尽量大)
Format
Input
输入的第一行包含一个正整数N(N<=3000),表示小学期将有的课程数
接下来2~N+1行,每行描述一个课程的信息。
每行第一个整数为Impact[i],表示第i个课程对于总绩点的影响,剩下的数表示课程i的先导课程号,每行相邻的两个数之间用空格隔开。
数据保证没有循环先导课程 (如选3需要先选2,选2需要先选1,选1需要先选3)的情况
Output
输出的第一行为一个数,表示修校选策略最后的Impact和
接下来若干行,表示选课方案,每行一个正整数,为需要修的校选课程号,有多个方案,则输出所选课程数最少的,所有课程号从小到大排列。
Sample 1
Input
4
4
-2 1
-3 1
4 2 3
Output
4
1
Limitation
3s, 128MB for each test case.
Hint
对于20%的数据,N<=2000且每个课程的先导课程数不超过3
对于40%的数据,N<=2000且每个课程的先导课程数不超过8
对于80%的数据,N<=3000且每个课程的先导课程数不超过20
存在数据满足N<=3000 且除一个课程外其余课程均有一个先导课程
存在数据满足N<=200 且第i个课程有i-1个先导课程
Source
Coolxxx
信息
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者