首页 > 其他分享 >HDU 3535 AreYouBusy

HDU 3535 AreYouBusy

时间:2022-10-25 17:02:32浏览次数:71  
标签:do HDU her int AreYouBusy 3535 she include choose


题目链接:​​传送门​​ 题面:


AreYouBusy

Problem Description

Happy New Term!
As having become a junior, xiaoA recognizes that there is not much time for her to AC problems, because there are some other things for her to do, which makes her nearly mad.
What’s more, her boss tells her that for some sets of duties, she must choose at least one job to do, but for some sets of things, she can only choose at most one to do, which is meaningless to the boss. And for others, she can do of her will. We just define the things that she can choose as “jobs”. A job takes time , and gives xiaoA some points of happiness (which means that she is always willing to do the jobs).So can you choose the best sets of them to give her the maximum points of happiness and also to be a good junior(which means that she should follow the boss’s advice)?

Input

There are several test cases, each test case begins with two integers n and T (0<=n,T<=100) , n sets of jobs for you to choose and T minutes for her to do them. Follows are n sets of description, each of which starts with two integers m and s (0<m<=100), there are m jobs in this set , and the set type is s, (0 stands for the sets that should choose at least 1 job to do, 1 for the sets that should choose at most 1 , and 2 for the one you can choose freely).then m pairs of integers ci,gi follows (0<=ci,gi<=100), means the ith job cost ci minutes to finish and gi points of happiness can be gained by finishing it. One job can be done only once.

Output

One line for each test case contains the maximum points of happiness we can choose from all jobs .if she can’t finish what her boss want, just output -1 .

Sample Input

3 3
2 1
2 5
3 8
2 0
1 0
2 1
3 2
4 3
2 1
1 1

3 4
2 1
2 5
3 8
2 0
1 1
2 8
3 2
4 4
2 1
1 1

1 1
1 0
2 1

5 3
2 0
1 0
2 1
2 0
2 2
1 1
2 0
3 2
2 1
2 1
1 5
2 8
3 2
3 8
4 9
5 10

Sample Output

5
13
-1
-1

题目大意:

多组数据。有组工作,每组工作有需要花费的时间和能得到的幸福值。有种类型的工作,每组工作中有个作业,如果这组工作的类型为,那就代表你至少选择一个作业来做,类型为代表最多选择一个作业,类型为代表你可以自由选择作业,输出能得到的最大的幸福值,具体输入格式看代码

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <complex>
#include <algorithm>
#include <climits>
#include <queue>
#include <map>
#include <vector>
#include <iomanip>
#define
#define
#define

using namespace std;
int n, V, m, w[A], v[A], type, f[B][B];

int main() {
while (cin >> n >> V) { //你可以选择n组工作,有V的时间去做
memset(f, 0, sizeof f);
for (int i = 1; i <= n; i++) {
cin >> m >> type; //第n组工作中有m个作业,类型为type
for (int j = 1; j <= m; j++) cin >> w[j] >> v[j];
if (!type) { //至少选择一个作业来做
for (int j = 0; j <= V; j++) f[i][j] = - (1 << 29); //初值设小
for (int j = 1; j <= m; j++)
for (int k = V; k >= w[j]; k--)
f[i][k] = max(f[i][k], max(f[i][k - w[j]] + v[j], f[i - 1][k - w[j]] + v[j]));//可以由上面的状态转移而来
}
else if (type == 1) { //最多选择一个作业
for (int j = 0; j <= V; j++) f[i][j] = f[i - 1][j];//继承上一个状态
for (int j = 1; j <= m; j++)
for (int k = V; k >= w[j]; k--)
f[i][k] = max(f[i][k], f[i - 1][k - w[j]] + v[j]);
}
else { //任意选择作业
for (int j = 0; j <= V; j++) f[i][j] = f[i - 1][j];//继承状态
for (int j = 1; j <= m; j++)
for (int k = V; k >= w[j]; k--)
f[i][k] = max(f[i][k], f[i][k - w[j]] + v[j]);
}
}
cout << max(f[n][V], -1) << endl;
}
}


标签:do,HDU,her,int,AreYouBusy,3535,she,include,choose
From: https://blog.51cto.com/lyle/5794956

相关文章

  • HDU 2844 Coins
    题目链接:​​传送门​​​题面:ProblemDescriptionWhuacmersusecoins.TheyhavecoinsofvalueA1,A2,A3…AnSilverlanddollar.OnedayHibixopenedpurseandfoun......
  • HDU 1203 I NEED A OFFER!
    题目链接:​​传送门​​题面:INEEDAOFFER!ProblemDescriptionSpeakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了......
  • HDU 1114 Piggy-Bank
    题目链接:​​传送门​​Piggy-BankProblemDescriptionBeforeACMcandoanything,abudgetmustbepreparedandthenecessaryfinancialsupportobtained.Them......
  • HDU 2546 饭卡
    题目链接:​​传送门​​题面:ProblemDescription电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一......
  • HDU 2602 Bone Collector
    题目链接:​​传送门​​​题面:ProblemDescriptionManyyearsago,inTeddy’shometowntherewasamanwhowascalled“BoneCollector”.Thismanliketocollec......
  • HDU2376 Average distance
    题目链接:传送门求树上任意两点间的路径和的平均值非常套路统计每条边被经过多少次就是两边的点数的乘积注意精度就好#include<cstdio>#include<cstring>#include<alg......
  • HDU 1394 Minimum Inversion Number
    题目链接:​​传送门​​求出原数组的逆序对算把一个数从对头拿到队尾的过程中产生的贡献诶我好像昨天做过这个题#include<iostream>#include<cstdio>#include<cstring......
  • HDU 4135 Co-prime
    题目链接:​​传送门​​多组数据问区间内与互质的数的个数区间问题显然要转化成两个区间相减的问题也就是的答案减去的答案这里反过来求不互质的数的个数筛法可以提示我......
  • HDU 3349 Consumer
    ​​题目链接​​题目背景有依赖的背包,下面用我常用的变量和说法。题目大意有个主件和块钱,每个主件都有费用和对应的个附件,附件也有费用与价值,购买主件后才能购买附件,问怎......
  • HDU 1465(错排公式)
    不容易系列之一TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):9829    AcceptedSubmission(s):......