美文网首页
CCF317号子任务(JAVA 30 分)

CCF317号子任务(JAVA 30 分)

作者: 巨鹿lx | 来源:发表于2020-03-26 15:42 被阅读0次
import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {
    static int N = 1010,n;
    static int a[][] = new int[N][N];
    static int key[] = new int[N];
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        int m = scanner.nextInt();
        int k = scanner.nextInt();
        int cnt = 0;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                if (i == j)a[i][j] = 0;
                else a[i][j] = 0x3f3f3f3f;
            }
        }
        for (int i = 1; i <= n; i++) {
            int a = scanner.nextInt();
            if (a == 1)key[cnt++] = i;
        }
        while (m-- > 0) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            int c = scanner.nextInt();
            a[x][y] = Math.min(a[x][y], c);
            a[y][x] = a[x][y];
        }
        floyd();
        PriorityQueue<Integer> q = new PriorityQueue<>(105);
        for(int i = 1; i <= n ; i ++) {
            q.clear();
            for(int j = 0; j <cnt;j++) {
                if(a[i][key[j]]!=0x3f3f3f3f) q.add(a[i][key[j]]);
            }
            if(q.size()>=k) outPath(q,k);
            else outAll(q);
        }
    }
    private static void outAll(PriorityQueue<Integer> q) {
        int res = 0;
        while(q.size()>0) {
            res+=q.poll();
        }
        System.out.println(res);
    }
    private static void outPath(PriorityQueue<Integer> q,int k) {
        int res = 0;
        for(int i =1 ; i<= k;i++) {
            res+=q.poll();
        }
        System.out.println(res);
    }
    private static void floyd() {
        for(int k = 1; k <= n; k++) {
            for(int i  = 1;  i <= n; i++) {
                for(int j = 1;j <= n; j++) {
                    a[i][j] = Math.min(a[i][j], a[i][k]+a[k][j]);
                }
            }
        }
    }
}

相关文章

  • CCF317号子任务(JAVA 30 分)

  • 2019演出经纪人考试之舞台艺术(中国部分)

    汉族民歌一般以艺术的样式划分为号子、山歌和小调。 劳动号子有搬运号子、工程号子、农事号子、船渔号子、作坊号子等类型...

  • 665/1000晨间日记21

    今天是什么日子 起床:5:30 就寝:10:30 天气:阴 心情:7分(满分十分) 任务清单 昨日完成的任务,最重...

  • 2019-02-15 CronExpression

    经典案例: "30 * * * * ?" 每半分钟触发任务 "30 10 * * * ?" 每小时的10分30秒触...

  • 4🈷️任务分解

    1:个人月任务101必须完成,目标完成120分,25天完成120分每天必保5分也就是(8000)每周30分,月任务...

  • 2020-2-20晨间日记

    今天是什么日子 起床:7点30分 就寝:10点30分 天气:晴 心情:好 任务清单 昨日完成的任务,最重要的三件事...

  • 四月份任务分解

    个人月任务101必完120分 提前25天完成120分每天必保5分也就是(8000)每周30分 月任务件数最低必...

  • 二级Java备考

    公共基础知识bai部分30分 专业语言部分 70分 Java语言程序设计 基本要求: 掌握Java语言的特点,实现...

  • 号子

    号子,产生于人们生产劳动的过程中,它可以驱散和缓冲对劳累强度的感受,同时也能统一动作的节奏,提示劳动中应注...

  • 号子

    一碧清江 一路排 千古劳作 千古号 嗨哟,嗨哟 嗨嗨哟! 淌过平缓 闯过急流 满眼的青绿 那是希望 蜿蜒的河水 那...

网友评论

      本文标题:CCF317号子任务(JAVA 30 分)

      本文链接:https://www.haomeiwen.com/subject/saecuhtx.html