本文共 573 字,大约阅读时间需要 1 分钟。
该题的题意比较难以理解,并且问题难以分析,,,
其中的要点就是,包含j这个点的状态的时间总值是否大于j这个点的截止时间,如果小于则扣分数为0,大于则差值就为扣分数
代码:
#includeusing namespace std;const int MAX=1<<16;int dp[MAX]; //把每一个状态中课程完成的最少用时int t[20]; //每一门课完成所需要的时间int d[20]; //每一门课程的截止时间int sum[MAX]; //表示每一个状态完成所需要的时间总和string name[20];string ans[MAX];int calc(int a,int b){ return max(0,a-b);}int main(){ int T,n,i,j,_i,_j,num; scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=0,_i=1; i >name[i]; scanf("%d %d",&d[i],&t[i]); sum[_i]=t[i]; } num=1<
转载地址:http://gjwpz.baihongyu.com/