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

相关推荐

LazyBreeze:项目尽量体现你对技术的理解和深度,不是说把中间件用一下就完事了,你项目里面提到集群和分布式,你真在服务器上部署过吗,感觉太假了,第二个项目说自己用了微服务的什么组件,只是用了没有自己的思考,很难让面试官注意到你的简历。针对某几个技术点自己多思考一下,考虑一下有没有别的替代方案,可以写一下,即使没有真的实现
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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