zoukankan      html  css  js  c++  java
  • hdu 3371 有毒的卡时间题目

    同样的代码 每次交的结果都不一样

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<algorithm> #include<iostream>
    using namespace std; struct Node { int from; int to; int w; }Edges[25500]; int father[550],ans; int find(int x) { int root = x; while(root != father[root]) { root = father[root]; } int z; while(x != root) { z = father[x]; father[x] = root; x = z; } return root; } bool cmp(Node a,Node b) { return a.w < b.w; } //int cmp(const void * a, const void * b) //{ // return ((Node *)a)->w - ((Node *)b)->w; //} bool Kruskal(int N,int M,int k) { sort(Edges,Edges+M,cmp); // qsort(Edges,M,sizeof(Node),cmp); int x,y; for(int i = 0; i < M; i++) { x = find(Edges[i].from); y = find(Edges[i].to); if(x != y) { father[y] = x; k++; ans += Edges[i].w; if(k == N-1) return true; } } if(k == N-1) return true; else return false; } int main() { int T,k,t,a,b,N,M,K; scanf("%d",&T); while(T--) { scanf("%d%d%d",&N,&M,&K); for(int i = 1; i <= N; i++) father[i] = i; for(int i = 0; i < M; i++) { scanf("%d%d%d",&Edges[i].from,&Edges[i].to,&Edges[i].w); } k = 0,ans = 0; for(int i = 0; i < K; i++) { scanf("%d%d",&t,&a); a = find(a); t--; while(t--) { scanf("%d",&b); b = find(b); if(a != b) { father[b] = a; k++; } } } if(Kruskal(N,M,k)) printf("%d ",ans); else printf("-1 "); } return 0; }
  • 相关阅读:
    Thymeleaf介绍和基本语法使用
    2020版idea及没有default Settings设置的idea,修改默认maven设置、本地仓库的方法
    创建springboot项目的两种方式
    2020版IDEA新建打开*.vue文件
    IDEA新手常用快捷键
    搭建一个maven的web项目
    eclipse、idea引入外部jar包教程
    序列化笔记
    转换流笔记
    缓冲流笔记
  • 原文地址:https://www.cnblogs.com/z1141000271/p/5804437.html
Copyright © 2011-2022 走看看