PTA 天梯赛 7-2 樱花对梧桐 C语言AC题解(15 分)

Posted on   zeitspeed  阅读(30)  评论(0编辑  收藏  举报

每年樱花季临沂大学绵延5公里樱花长廊美醉了,将军园、星海湖、科技楼、下沉广场均成了观赏醉美樱花海的“打卡地”。 但是一到夏季酷热难当,为了全校师生能够免于暴晒,学校决定将主路一侧的樱花树选取若干区域移除,改种梧桐树。
已知该主路总长度为L米,共种植L+1棵樱花树,每两颗相邻的樱花树的间隔都是1米,主路两端各有一颗樱花树,即将主路看成一个数轴,数轴上的每个整数点0,1,2,…,L,都种有一棵樱花树。现给出M个区域,要把这些区域中的樱花树(包括区起止点和终止点的两棵樱花树)移走,相同位置改种梧桐树,已知这些区域的起始点和终止点(都是整数),区域之间可能有重合的部分。请你计算下完成这些区域的改种工作后,主路上还剩颗樱花树,新增多少颗梧桐树?

输入格式:
输入第一行为两个整数L,M,分别表示主路的长度和区域的数目,其中1≤L≤20000,1≤M≤1000,中间用空格分割。

接下来 m 行,每行两个整数 u,v,表示一个区域的起始点和终止点的坐标,其中0≤u≤v≤l,中间用空格分割。

输出格式:
输出只有一行,有两个整数,用1个空格分割,分别表示剩余的樱花树棵树和新增的梧桐树棵树。

输入样例:
100 3
10 20
20 20
30 50
输出样例:
69 32

#include<stdio.h>
int main(void){
    int n,m;
    scanf("%d %d",&n,&m);
    int a,b;
    int sum=0;
    int c[20005]={0};
    for(int i=0;i<m;i++){
        scanf("%d %d",&a,&b);
        for(int j=a;j<=b;j++){
            if(c[j]==1){
                continue;
            }
            c[j]=1;
            sum++;
        }
    }
    printf("%d %d",(n+1)-sum,sum);
    return 0;
}

如果对你有帮助麻烦点个赞!谢谢!

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示