活动安排问题

cpp 复制代码
#include<iostream>
using namespace std;
void Sort(int n,int *s,int *f)
{
    for(int i=0;i<n;i++)
    {
        for(int j=i;j<n;j++)
        {
            if(f[i]>f[j])
            {
                int t0=f[i];
                f[i]=f[j];
                f[j]=t0;
                int t1=s[i];
                s[i]=s[j];
                s[j]=t1;
            }
        }
    }
}
void Print(int n,int s[],int f[])
{
    for(int i=0;i<n;i++)
        cout<<i<<":"<<s[i]<<" "<<f[i]<<endl;
}
int GreedySelector(int n,int s[],int f[],bool A[])
{
    A[0]=true;
    int j=0;
    int count0=1;
    for(int i=1;i<n;i++)
    {
        if(s[i]>=f[j])
        {
            A[i]=true;
            j=i;
            count0++;
        }
    }
    return count0;
}
int main()
{
    int n;cin>>n;
    int s[n],f[n];
    bool A[n];
    for(int i=0;i<n;i++)
        A[i]=false;
    for(int i=0;i<n;i++)
    {
        cin>>s[i]>>f[i];
    }
    Sort(n,s,f);
    Print(n,s,f);
    cout<<GreedySelector(n,s,f,A)<<endl;
    for(int i=0;i<n;i++)
    {
        if(A[i]==true)
            cout<<s[i]<<" "<<f[i]<<endl;;
    }
    return 0;
}
相关推荐
Lear5 小时前
【链表】LeetCode 206.反转链表
算法
Lear5 小时前
【链表】LeetCode 24.两两交换链表中的节点
算法
xiaoxiangwendao5 小时前
[26] 删除排序数组中的重复项
算法
THGML5 小时前
排序算法解析
数据结构·算法·排序算法
月夜的风吹雨5 小时前
【C++ string 类实战指南】:从接口用法到 OJ 解题的全方位解析
c++·接口·string·范围for·auto·力扣oj
周杰伦_Jay5 小时前
【计算机网络核心】TCP/IP模型与网页解析全流程详解
网络·网络协议·tcp/ip·计算机网络·算法·架构·1024程序员节
额呃呃5 小时前
对信号的理解
linux·运维·算法
OKkankan5 小时前
模板的进阶
开发语言·数据结构·c++·算法
拾光Ծ5 小时前
【高阶数据结构】哈希表
数据结构·c++·哈希算法·散列表
终焉代码6 小时前
【C++】C++11特性学习(1)——列表初始化 | 右值引用与移动语义
c语言·c++·学习·1024程序员节