本文共 785 字,大约阅读时间需要 2 分钟。
状态压缩题,要注意的是有多种情况扣分相同,那么要按照字典序输出,也就是输入时在前,那么输出也要在前。具体看代码注释。
参考文章:#include#include #include #include using namespace std;const int maxn=1<<17;struct homework{ char name[150]; int deadline; int timecost;//做作业所花费的时间}h[30];struct node{ int score;//当前的扣分情况 int time;//当前所花的天数 int num;//当前所做作业的序号 int pre;//上一个状态的地址}dp[maxn];//数组要开的足够大,数字上限为2^nint main(){ int T,N; scanf("%d",&T); while(T--){ scanf("%d",&N); for(int i=0;i =0;j--){//j从大到小每个作业遍历,保证字典序输出 int temp=1<
确实不是很懂这题,出错的地方请见谅。
转载于:https://blog.51cto.com/13688928/2112632