c/c++语言开发共享(杭电1406)完数

题目描述There is a collection of n activities E={1,2,..,n}, each of which requires the same resource, such asa lecture venue, etc., and only one activity …

题目描述
there is a collection of n activities e={1,2,..,n}, each of which requires the same resource, such as
a lecture venue, etc., and only one activity at a time use this resource. each activity i has a start
time of si and an end time of fi and si<fi. if the activity i is selected, it occupies resources within
the time interval [si,fi). if the interval [si,fi) does not intersect the interval [sj,fj), then the activity i is
said to be compatible with the activity j. that is, when fi<=sj or fj<=si, the activity i is compatible
with the activity j . choose the largest collection of activities that are compatible with each other.
输入格式
the first line is an integer n;
the next n line, two integers per line, si and fi.
输出格式
excluding mutual and compatible maximum active number.
样例输入1
4
1 3
4 6
2 5
1 7
样例输出1
2

数据范围与提示
1<=n<=1000

 

这道题解法与杭电今年暑假不ac解法相同,采用贪心法

代码实例

#include<stdio.h>  struct huodong {     int begin;     int end; } j[1002];  int main() {     int n,i,j,sum,temp;     sum = 1;     scanf("%d",&n);     for(i=0; i<n; i++)         scanf("%d %d",&j[i].begin,&j[i].end);     for(i=0; i<n-1; i++)     {         for(j=0; j<n-i-1; j++)         {             if(j[j].end>j[j+1].end)             {                 temp = j[j].end;                 j[j].end = j[j+1].end;                 j[j+1].end = temp;                  temp = j[j].begin;                 j[j].begin = j[j+1].begin;                 j[j+1].begin = temp;             }         }     }     temp = j[0].end;     for(i=1; i<n; i++)     {         if(j[i].begin>=temp)         {             sum++;             temp = j[i].end;         }     }     printf("%dn",sum);     return 0; }

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/611599.html

(0)
上一篇 2021年5月25日
下一篇 2021年5月25日

精彩推荐