Problem B. 涮羊肉

Problem B. 涮羊肉

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 189    Accepted Submission(s): 74


Problem Description

内蒙的羊由于生长的地域和气候的不同,产出的羊肉区别于其它地区的羊肉,以鲜嫩味美著称。

有一天,莱特跟瑞秋一起去内蒙吃涮羊肉,瑞秋往锅里下羊肉,莱特负责吃。

不同部位的肉要煮不同的时间,才能变得美味。莱特希望吃到最多的美味羊肉,但是莱特的手速不够快,用m代表莱特的手速,每次下手捞羊肉后要过m秒才能再捞(每次只能捞一个)。

那么用最合理的策略,莱特最多能吃到多少美味羊肉?

 

Input

第一行一个T(1≤T≤120)代表数据组数。

每组数据:

第一行两个整数n,m(1≤n,m≤1000),其中n代表瑞秋往锅里下的羊肉个数,m代表莱特的手速。

接下来n行,每行两个数x,y(1≤x,y≤1000)代表第x秒下的肉过y秒才能变得美味。

 

Output
每个询问输出一个整数代表答案。
 

Sample Input
 
  
2 2 1 1 2 2 1 3 1 1 2 1 3 2 3
 
Sample Output
 
  
1         3                                
贪心,按美味时间排好序之后如果和前一块拿的时间相差大于吗就拿
#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<string>
#include<cstring>
using namespace std;
int mod=1000000000+7;
int s[1000000];
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m;
        scanf("%d %d",&n,&m);
        memset(s,0,sizeof(s));
        int flag=0;
        for(int i=0;i<n;i++){
            int x,y,z;
            scanf("%d %d",&x,&y);
            z=x+y;
            s[flag]=z;
            flag++;
        }
        sort(s,s+n);
        int sum=1,la=s[0];
        for(int i=1;i<n;i++){
            if(s[i]-la>=m){
                la=s[i];
                sum++;
            }
        }
        printf("%d\n",sum);
    }

    return 0;
}



 
  

猜你喜欢

转载自blog.csdn.net/qibage/article/details/81053098