Codeforces Round #501 (Div. 3) A Points in Segments

Posted lyfoi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #501 (Div. 3) A Points in Segments相关的知识,希望对你有一定的参考价值。

翻译

现在有一个数轴,上面会有(M)个点,标号为(1)(N),现在给你在数轴上的条(N)线段的起始与终止的点,问哪几个点没有被这样线段覆盖,从小到大输出。

思路

签到题目。感觉几乎和一道题一样:校门外的树,撞题是很尴尬。思路差不多,即为开一个数组,全部赋值为(0),输入的线段的时候,将其起点与终点的全部的点赋值为(1),最后跑一下看看那些为(0)的点就完事了。

Code

#include<iostream>
using namespace std;
int book[1001];//默认为0
int main()
{
    int n,k,t=0;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        int a,b;
        cin>>a>>b;
        for(int j=a;j<=b;j++)//标记线段的区间
            book[j]=1;
    }
    for(int i=1;i<=k;i++)
        if(book[i]==0)//0即为没有覆盖
            t++;
    cout<<t<<endl; 
    for(int i=1;i<=k;i++)
        if(book[i]==0)
            cout<<i<<" ";   
    return 0;
}

以上是关于Codeforces Round #501 (Div. 3) A Points in Segments的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #501 (Div. 3) F. Bracket Substring

Codeforces Round #501 (Div. 3) ABDE1E2

Codeforces Round #501 (Div. 3) 翻船记

Codeforces Round #501 (Div. 3) B Obtaining the String

Codeforces Round #501 (Div. 3) A Points in Segments

Codeforces Round #501 (Div. 3) D Walking Between Houses