CCF201809-02,买菜

2018-11-30  本文已影响0人  云淡风轻_935f
(9QN@TQ)8D)~`K$NHJCZV8Q.png

算法1

我自己写的,感觉不是很简洁,反正就是一直比较时间。

import java.util.Scanner;

public class sell1 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] a=new int[n];
        int[] b=new int[n];
        int[] c=new int[n];
        int[] d=new int[n];
        for(int i=0;i<n;i++){
            a[i]=sc.nextInt();
            b[i]=sc.nextInt();
        }
        for(int i=0;i<n;i++){
            c[i]=sc.nextInt();
            d[i]=sc.nextInt();
        }
        int tH=0,tW=0,sum=0;
        while(tH!=n&&tW!=n){
            if(c[tW]>b[tH]){
                tH++;
            }
            else if(c[tW]>a[tH]){
                a[tH]=c[tW];
                if(b[tH]>=d[tW]){
                    sum=sum+d[tW]-c[tW];
                    tW++;
                }
                else{
                    sum=sum+b[tH]-a[tH];
                    tH++;
                }
            }
            else if(d[tW]<a[tH]){
                tW++;
            }
            else{
                c[tW]=a[tH];
                if(b[tH]>=d[tW]){
                    sum=sum+d[tW]-c[tW];
                    tW++;
                }
                else{
                    sum=sum+b[tH]-a[tH];
                    tH++;
                }
            }
        }
        System.out.println(sum);
    }
}

算法2

大致意思就是,用一个数组t记录这个时间段装车的人数,初始为0,遍历小H和小W的装车时间,装车时间段人数加1,最后数组t中装车人数大于1(2次)的时间即为所求,因为这个时间段两人都在装车,可以聊天

import java.util.Scanner;

public class sell11 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int[] t = new int[1000000];
        int count = 0;

        for (int i = 0; i < n * 2; i++) {
            int a = input.nextInt();
            int b = input.nextInt();
            for (int j = a; j < b; j++)
                t[j]++;
        }

        for (int i : t)
            if (i > 1)
                count++;

        System.out.println(count);
    }
}
上一篇下一篇

猜你喜欢

热点阅读