hdu 2037

PS:   - -原本想的是排序开始时间和消耗时间。。后来想到可以排序结束时间..后来还wa了一次,因为排序的时候溢出了

思路:

1 3 //1
3 4 //2
0 7
3 8
2 9
5 10 //3
6 12
4 14
8 18
10 15  //4
15 19 //5
15 20

代码:#include "stdio.h"
struct time1{
 int x,y;
}ti[110];
void comp(int n){
 int i,j;
 time1 t;
 for(i=0;i<n;i++){
  for(j=0;j<n-i-1;j++){
   if(ti[j].y>ti[j+1].y){
    t=ti[j];
    ti[j]=ti[j+1];
    ti[j+1]=t;
   }
  }
 }
}
int main(){
 int n,i,k,num;
 while(~scanf("%d",&n) && n){
  for(i=0;i<n;i++){
   scanf("%d%d",&ti[i].x,&ti[i].y);
  }
  comp(n);
  num=1;
  k=ti[0].y;
  for(i=1;i<n;i++){
      if(k<=ti[i].x){
       num++;
       k=ti[i].y;
      } 
  }
     printf("%d\n",num);
 }
 return 0;
}

时间: 2024-08-14 10:32:13

hdu 2037的相关文章

Hdu 2037 今年暑假不AC

今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27586    Accepted Submission(s): 14578 Problem Description “今年暑假不AC?”“是的.”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也

[2016-02-04][HDU][2037][今年暑假不AC]

[2016-02-04][HDU][2037][今年暑假不AC] 今年暑假不AC Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋!" "@#$%^&*%..." 确实如此,

HDU 2037 今年暑假不AC (贪心)

HDU 2037 今年暑假不AC (贪心) 题目: http://acm.hdu.edu.cn/showproblem.php?pid=2037 非常经典的活动安排问题变形, 与算法教材的活动安排一样,根据结束时间进行排序,然后相容的累加即可. // 经典贪心问题 活动时间安排的简单变形 // 按活动结束时间,递增排序, 结束时间早的,优先选择 #include <bits/stdc++.h> using namespace std; typedef struct active { int s

hdu 2037 贪心

今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 27361    Accepted Submission(s): 14439 Problem Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋!" &quo

hdu 2037简单贪心--活动安排问题

活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子.该问题要求高效地安排一系列争用某一公共资源的活动.贪心算法提供了一个简单.漂亮的方法使得尽可能多的活动能兼容地使用公共资源 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有 一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi .如果选择了活动i,则它在半开时间区间[si, fi)内占用资源

HDU 2037 今年暑假不AC(贪心,区间更新,板子题)

今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 55813    Accepted Submission(s): 30009 Problem Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...”确实如此,世界杯来了,球迷的节日也来了,估计很多AC

HDU 2037 (贪心)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037 今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 31608    Accepted Submission(s): 16733 Problem Description “今年暑假不AC?” “是的.” “那你干什么呢?”

贪心/hdu 2037 今年暑假不AC

1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 struct node 6 { 7 int st; 8 int ed; 9 }; 10 node a[110]; 11 int n,ans; 12 bool cmp(node x,node y) 13 { 14 if (x.ed==y.ed) return x.st<y.st; 15 retur

HDU 2037 今年暑假不AC (区间贪心)

题意:又是中文题... 析:先说一下区间贪心的一个定理,选择不相交的区间:数轴上有n个开区间(ai, bi).选择尽量多的区间,使得这些区间两两不相交,贪心策略是,一定是选bi小的.(想一下为什么). 知道这个的话,这个问题还不so easy!先对每个节目结束的时间排序,然后一个一个的选,保证没有相交,也就是说当前的开始时间一定要是上一个后面或者上一个刚结束当前就开始就OK了. 代码如下: #include <iostream> #include <cstdio> #include

hdu 2037 今年暑假不AC (看电视贪心)

表示你喜欢看的节目的总数,然后是n行数据,每行包括两个数据Ti_s,Ti_e (1<=i<=n),分别表示第i个节目的开始和结束时间,为了简化问题,每个时间都用一个正整数表示.n=0表示输入结束,不做处理.求最多看的电视数目 将电视按结束时间排序,遍历电视开始时间是否小于 记录的上个电视的结束时间 1 for(int i = 1 ; i < n ; i ++){ 2 if(tv[i].s >= endtime){ 3 cnt++; 4 endtime = tv[i].e; 5 }