过了80%超时了,不知道如何优化



import java.util.*;
import java.io.*;
public class Main{
    
    public static void main(String[] args) throws IOException{
        class Node implements Comparable<Node>{
            int index;
            int num;
            int color;
            public Node(int i, int v, int c){
                this.index = i; this.num = v;this.color = c;
            }
            public int compareTo(Node o){
                if(this.color < o.color){
                    return -1;
                }else if(this.color > o.color){
                    return 1;
                }else{
                    if(this.index < o.index){
                        return -1;
                    }else{return 1;}
                }
            }
        }
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String[] nm = bf.readLine().trim().split(" ");
        int n = Integer.parseInt(nm[0]), m = Integer.parseInt(nm[1]);
        String[] numStrs = bf.readLine().trim().split(" ");
        String[] colorStrs = bf.readLine().trim().split(" ");
        Node[] nodes = new Node[n];
        for(int i = 0; i < n; ++i){
            nodes[i] = new Node(i + 1, Integer.parseInt(numStrs[i]), Integer.parseInt(colorStrs[i]));
        }
        Arrays.sort(nodes);
        /*for(Node node: nodes){
            System.out.println(node.color + " " + node.index + " " + node.num);
        }*/
        int MOD = 10007;
        long res = 0L;
        int l = 0, r;
        for(; l < n; ++l){
            Node nodel = nodes[l];
            for(r = l + 1; r < n; ++r){
                Node noder = nodes[r];
                if(noder.color == nodel.color){
                    if(((noder.index - nodel.index) & 1) == 0){
                        res = (res + ((long)noder.index + nodel.index) * (noder.num + nodel.num)) % MOD;
                    }
                }else{
                    break;
                }
            }
        }
        System.out.println(res);
    }
    
}


全部评论
感觉还是不行吧
6 回复 分享
发布于 2020-12-09 10:57
将颜色相同的排序到一起,还是超时了
点赞 回复 分享
发布于 2020-12-08 22:15

相关推荐

沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务