我也是醉了, 无限WA 。

注意一下使用邻接矩阵时循环语句的不同处。

1 for(int i = 1; i <= n; i++)  for(int j  = i; j  <= n; j++)  map[i][j]=map[j][i]=(i==j?0:INF)
2
3 和普通写法区别。

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#define M 601
#define N 1000001
using namespace std;
const int INF = 0x3f3f3f3f;
int sieve[N*2], dis[M], vis[M], Rode[M], map[M][M];
int n;
int Min(int a, int b)
{if(a < b)return a;elsereturn b;
}
void Is_Prime()
{memset(sieve, 0, sizeof(sieve));sieve[0] = sieve[1] = 1;for(int i = 2; i < N*2; i++){if(!sieve[i])for(int j = 2*i; j < N*2; j += i)sieve[j] = 1;}
}
void Prime()
{int sum = 0;memset(vis, 0, sizeof(vis));for(int i = 1; i <= n; i++)dis[i] = map[1][i];vis[1] = 1;for(int i = 1; i < n; i++){int temp = 1, min = INF;for(int j = 1; j <= n; j++){if(!vis[j] && dis[j] < min){temp = j;min = dis[j];    }    } if(min == INF){printf("-1\n");return;}vis[temp] = 1;sum += min;for(int j = 1; j <= n; j++)if(!vis[j] && dis[j] > map[temp][j])dis[j] = map[temp][j];}printf("%d\n", sum);
}
int main()
{int T;scanf("%d", &T);Is_Prime();while(T--){scanf("%d", &n);for(int i = 1; i <= n; i++)scanf("%d", &Rode[i]);for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)map[i][j] = (i==j?0:INF);for(int i = 1; i <= n; i++)for(int j = 1; j <= i; j++)if(!sieve[Rode[i]] || !sieve[Rode[j]] || !sieve[Rode[i] + Rode[j]])map[i][j] = map[j][i] = Min(Min(Rode[i], Rode[j]), abs(Rode[i]-Rode[j]));Prime();}return 0;
}

转载于:https://www.cnblogs.com/soTired/p/4816588.html

杭电2682--Tree(Prim)相关推荐

  1. 杭电4786--Fibonacci Tree(生成树)

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意: 存不存在所含白边数为菲波那契数的生成树(包含图中所有节点). 找出生成树中所含白边最多和最 ...

  2. 杭电1325java实现

    题目链接 问题描述 树是一个众所周知的数据结构,它可以是空的(null,void,nothing),也可以是一组由节点之间的有向边连接起来的一个或多个节点,满足以下属性. 只有一个节点称为根,没有有向 ...

  3. java最简单的并查集(不想交集合)以及杭电1272

    并查集要有的一些属性:value:表示当前值,指针:(不一定是指针)指向父节点. 还有一个属性number:表示该树存在的总个数.(也可以用深度表示).我用小树插在大树上. 如果是普通数字表示的树,可 ...

  4. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  5. 杭电OJ分类题目(3)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...

  6. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  7. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

  8. 杭电1874————单源最短路径(dijkstra)

    畅通工程续 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  9. 2021杭电多校第八场补题

    比赛传送门:Contest Problem List (hdu.edu.cn) 1006)GCD Game 题目翻译:爱丽丝和鲍勃正在玩游戏. 他们轮流操作.有n个数字,a1,a2,...,an.每次 ...

最新文章

  1. 美颜算法之自动祛斑算法实现 | 案例分享
  2. java 字符整数_Java整数是否等于字符?
  3. poj 2689 大范围素数
  4. 图像五值化与基于三值图像的车牌识别(1)
  5. 我们应聘BAT等互联网公司,关于Spring到底需要掌握什么?
  6. Redis(二):Redis的安装及配置(2)---设置启动信息
  7. php二分查找例题,PHP实现的二分查找算法实例分析
  8. 一些音视频相关概念学习笔记
  9. vmware 7.0 序列号_更改solidworks序列号及修改安装
  10. 数据库索引是什么 有什么优缺点
  11. app store android退款,iPhone8手机购买的app应用怎么退款?苹果8购买的app退款方法步骤...
  12. c语言编程定位的计算机,高校计算机专业C语言教学的四个定位
  13. 【Multisim仿真】二极管加正向和反向电压测量实验
  14. gets_s()函数
  15. 使用WinCE CAB Manager制作CAB安装文件
  16. ACL2000简单配置
  17. 一个数的亲和数iiic++_世界上最大的数和最小的数是多少?
  18. 如何查看html源码和其它网页信息
  19. 英文姓名 格式 结构
  20. SQL多表联合查询(交叉连接,内连接,外连接)

热门文章

  1. html 第三次作业
  2. 凸显价值:全国CIO交流大会7月20-22日将于青海举办
  3. Free Online SQL Formatter
  4. 超强1000个jquery极品插件!(连载中。。。。最近更新20090710)
  5. 抓包和http请求工具
  6. Amoeba实现mysql主从读写分离
  7. pthread_testcancel和pthread_cancel函数的简单示例
  8. Linux第二周学习笔记(7)
  9. DataReport使用手记
  10. 《树莓派渗透测试实战》——2.7 设置SSH服务