海绵宝宝敲代码 2021-12-06 08:56 采纳率: 100%
浏览 24
已结题

洛谷P1074校门外的树https://www.luogu.com.cn/problem/P1047#submit

第一个和第二个只有42行的else有区别,但第一个通过了,第二个没过,不理解.

#include<stdio.h>
int main()
{
    int l,m,a[100][2],i,s=0,min,t,j,k;
    scanf("%d %d\n%d %d",&l,&m,&a[0][0],&a[0][1]);
    for(i=1;i<m;i++)
    {
        scanf("%d %d",&a[i][0],&a[i][1]); 
    }
    for(int j=0;j<m;j++)
    {
        min=a[j][0];
        for(int i=j+1;i<m;i++)
        {
            if(a[i][0]<min)
            {
                t=min;
                min=a[i][0];
                a[i][0]=t;
            }
        }
        a[j][0]=min;
    }
    for(int j=0;j<m;j++)
    {
        min=a[j][1];
        for(int i=j+1;i<m;i++)
        {
            if(a[i][1]<min)
            {
                t=min;
                min=a[i][1];
                a[i][1]=t;
            }
        }
        a[j][1]=min;
    }
    k=a[0][1]-a[0][0]+1;
    for(i=1;i<m;i++)
    {
        if(a[i][0]>a[i-1][1])k+=a[i][1]-a[i][0]+1;
        else 
        {
            a[i][0]=a[i-1][0];
            k=a[i][1]-a[i][0]+1;
        }
    }
    s=l-k+1;
    printf("%d",s);
    return 0;    
} 
#include<stdio.h>
int main()
{
    int l,m,a[100][2],i,s=0,min,t,j,k;
    scanf("%d %d\n%d %d",&l,&m,&a[0][0],&a[0][1]);
    for(i=1;i<m;i++)
    {
        scanf("%d %d",&a[i][0],&a[i][1]); 
    }
    for(int j=0;j<m;j++)
    {
        min=a[j][0];
        for(int i=j+1;i<m;i++)
        {
            if(a[i][0]<min)
            {
                t=min;
                min=a[i][0];
                a[i][0]=t;
            }
        }
        a[j][0]=min;
    }
    for(int j=0;j<m;j++)
    {
        min=a[j][1];
        for(int i=j+1;i<m;i++)
        {
            if(a[i][1]<min)
            {
                t=min;
                min=a[i][1];
                a[i][1]=t;
            }
        }
        a[j][1]=min;
    }
    k=a[0][1]-a[0][0]+1;
    for(i=1;i<m;i++)
    {
        if(a[i][0]>a[i-1][1])k+=a[i][1]-a[i][0]+1;
        else k=a[i][1]-a[i-1][0]+1;
    }
    s=l-k+1;
    printf("%d",s);
    return 0;    
}
  • 写回答

1条回答 默认 最新

  • 海绵宝宝敲代码 2021-12-09 08:20
    关注

    第一段代码中改变了a[i][0],而第二段没有.
    一次循环结束后i+1,再循环时else用到了a[i-1][0],即上次循环中的a[i][0],所以a[i][0]是否改变对结果有影响

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月17日
  • 已采纳回答 12月9日
  • 创建了问题 12月6日

悬赏问题

  • ¥15 WPF 大屏看板表格背景图片设置
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示