HDU-6249:Alice’s Stamps(DP) - Mitsuha_的博客 - CSDN博客

文章价值(3) ?
阅读数(518) ?

Alice’s Stamps

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Time Limit: 6000/3000 MS (Java/Others)????Memory Limit: 65536/65536 K (Java/Others)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Total Submission(s): 332????Accepted Submission(s): 107


Problem Description
Alice likes to collect stamps. She is now at the post office buying some new stamps.
There are?N?different kinds of stamps that exist in the world; they are numbered?1?through?N. However, stamps are not sold individually; they must be purchased in sets. There are?M?different stamp sets available; the?ith?set contains the stamps numbered?Li?through?Ri. The same stamp might appear in more than one set, and it is possible that one or more stamps are not available in any of the sets.
All of the sets cost the same amount; because Alice has a limited budget, she can buy at most?K?different sets. What is the maximum number of different kinds of stamps that Alice can get?
?

Input
The input starts with one line containing one integer?T, the number of test cases.T?test cases follow.
Each test case begins with a line containing three integers:?N,?M, and?K: the number of different kinds of stamps available, the number of stamp sets available, and the maximum number of stamp sets that Alice can buy.
M?lines follow; the?ithoftheselinesrepresentsthei^{th} stamp set and contains two integers,?Li?and?Ri, which represent the inclusive range of the numbers of the stamps available in that set.
1T100
1KM
1N,M2000
1LiRiN
?

Output
For each test case, output one line containing “Case #x: y”, where?x?is the test case number (starting from 1) and?y?is the maximum number of different kinds of stamp that Alice could get.
?

Sample Input
2 5 3 2 3 4 1 1 1 3 100 2 1 1 50 90 100
?

Sample Output
Case #1: 4 Case #2: 50
Hint
In sample case #1, Alice could buy the first and the third stamp sets, which contain the first four kinds of stamp. Note that she gets two copies of stamp 3, but only the number of different kinds of stamps matters, not the number of stamps of each kind. In sample case #2, Alice could buy the first stamp set, which contains 50 different kinds of stamps.

思路:d[i][j]表示[1,i]的邮票中用j个set能得到的不同的邮票的最大值。

#include
using namespace std;
int d[3000][3000],up[3000];
int main()
{
    int T,cas=1,n,m,num;cin>>T;
    while(T--)
    {
        scanf("%d%d%d",&n,&m,&num);
        memset(up,0,sizeof up);
        memset(d,0,sizeof d);
        for(int i=1,x,y;i<=m;i++)
        {
            scanf("%d%d",&x,&y);
            for(int j=x;j<=y;j++)up[j]=max(up[j],y);
        }
        for(int i=1;i<=n;i++)
        {
            for(int j=0;j






(注:此网站文章大都来自公开的博客,如有原作者发现有侵权问题,请在此留言,我们会立刻删除相关文章。)

我的评价: