第一个点AC,后九个全部RE,不知为何

P1047 [NOIP2005 普及组] 校门外的树

WHY_987321 @ 2022-10-26 22:33:56

import java.util.Scanner;//主要还是算法的问题,先想明白要怎么做,再动手

//校门外的树
public class Main {
    public static void main(String[] args) {
        int l;//马路长度
        int m;//数据组数
        int u,v;
        int i,j;//好的代码习惯,先统一定义变量然后输入
        int cnt = 0;//代表最后为1的个数 即留下来的树
        Scanner scan = new Scanner(System.in);//输入标志
        l = scan.nextInt();//读入马路长度和区间数
        m = scan.nextInt();
        int[] tree = new int[10000];//声明数组 长度为10000 注意是方括号
        for(i = 0; i <= l; i++)//第一次循环将所有元素都设置未访问过
        {
            tree[i] = 0;//先把所有元素都设为未访问过
        }
        for(i = 0; i < m; i++)//第二次循环读入区间端点
        {
            u = scan.nextInt();
            v = scan.nextInt();
            for(j = u; j <= v; j++)//循环将区间内所有的树都设为访问过
            {
                tree[j] = 1;//这里发现问题:双重循环嵌套时循环变量要用i和j
            }
        }
        for(j = 0; j <= l; j++)//遍历所有树 未访问过则cnt++
        {
            if(tree[j] == 0)
            {
                cnt++;
            }
        }
        System.out.println(cnt);
    }
}

by zhijinzeng @ 2022-11-10 11:53:30

你是对的,测试点错了9个.

正确代码中,输入:

5 1

1 5;

输出:

1

一共5棵树,把第1到第5全部移走,还有1课???


|