杭电2682--Tree(Prim)
我也是醉了, 无限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)相关推荐
- 杭电4786--Fibonacci Tree(生成树)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=4786 题意: 存不存在所含白边数为菲波那契数的生成树(包含图中所有节点). 找出生成树中所含白边最多和最 ...
- 杭电1325java实现
题目链接 问题描述 树是一个众所周知的数据结构,它可以是空的(null,void,nothing),也可以是一组由节点之间的有向边连接起来的一个或多个节点,满足以下属性. 只有一个节点称为根,没有有向 ...
- java最简单的并查集(不想交集合)以及杭电1272
并查集要有的一些属性:value:表示当前值,指针:(不一定是指针)指向父节点. 还有一个属性number:表示该树存在的总个数.(也可以用深度表示).我用小树插在大树上. 如果是普通数字表示的树,可 ...
- 杭电OJ分类题目(4)-Graph
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...
- 杭电OJ分类题目(3)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...
- 杭电OJ分类题目(2)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...
- 杭电OJ分类题目(1)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...
- 杭电1874————单源最短路径(dijkstra)
畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 2021杭电多校第八场补题
比赛传送门:Contest Problem List (hdu.edu.cn) 1006)GCD Game 题目翻译:爱丽丝和鲍勃正在玩游戏. 他们轮流操作.有n个数字,a1,a2,...,an.每次 ...
最新文章
- 美颜算法之自动祛斑算法实现 | 案例分享
- java 字符整数_Java整数是否等于字符?
- poj 2689 大范围素数
- 图像五值化与基于三值图像的车牌识别(1)
- 我们应聘BAT等互联网公司,关于Spring到底需要掌握什么?
- Redis(二):Redis的安装及配置(2)---设置启动信息
- php二分查找例题,PHP实现的二分查找算法实例分析
- 一些音视频相关概念学习笔记
- vmware 7.0 序列号_更改solidworks序列号及修改安装
- 数据库索引是什么 有什么优缺点
- app store android退款,iPhone8手机购买的app应用怎么退款?苹果8购买的app退款方法步骤...
- c语言编程定位的计算机,高校计算机专业C语言教学的四个定位
- 【Multisim仿真】二极管加正向和反向电压测量实验
- gets_s()函数
- 使用WinCE CAB Manager制作CAB安装文件
- ACL2000简单配置
- 一个数的亲和数iiic++_世界上最大的数和最小的数是多少?
- 如何查看html源码和其它网页信息
- 英文姓名 格式 结构
- SQL多表联合查询(交叉连接,内连接,外连接)