c题值周问题 ,样例过了,代码感觉也没问题 为什么过不了

使用贪心算法,对区间进行排序,以末尾节点递增排序
#include<iostream>
#include<algorithm>
using namespace std;
struct loc{
    int first;
    int last;
};
const int MAX=1000008;
loc area[MAX];
bool com(loc a,loc b)
{
    if(a.last<b.last)
        return true;
    else if(a.last==b.last)
    {
        if(a.first<b.first)
            return true;
        else
            return false;
    }
    else
        return false;
}
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<m;++i)
    {
        cin>>area[i].first>>area[i].last;
    }
    sort(area,area+m,com);
    int flag=0;
    int sum=0;
    for(int i=0;i<m;++i)
    {
        if(flag<area[i].first)
            sum+=(area[i].last-area[i].first+1);
        else
            sum+=(area[i].last-flag);
        flag=area[i].last;
    }
    cout<<n+1-sum<<endl;
}

全部评论
1 你longlong用cin读似乎会t,建议scanf+快读 实在不行手动开o2 2 我觉得应该以头节点排序吧,以末尾排序可能会有反例哦,实在不行看下题解吧,里面讲的还算清楚吧 真的不行可以看看别人写法或问我要std哦
点赞 回复 分享
发布于 2019-07-01 22:53
求大佬解答 代码哪里有问题
点赞 回复 分享
发布于 2019-07-01 14:51

相关推荐

绝迹的星:前端和后端写两份简历, 如果想干全栈就直接写求职意向为全栈工程师
点赞 评论 收藏
分享
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-15 17:17
听说过付费实习,没想到这么贵啊我去,要不我给你个腰子吧
哈哈哈,你是老六:这种公司一定要注意啊,不要随便签合同,只要签了后面钱可能回不来,而且你通过法律途径也弄不回
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务