hdoj--2682--Tree()
Tree
Total Submission(s): 2107 Accepted Submission(s): 610
more,the cost to connecte two cities is Min(Min(VA , VB),|VA-VB|).
Now we want to connecte all the cities together,and make the cost minimal.
Each case begin with a integer N,then N integer Vi(0<=Vi<=1000000).
2
5
1
2
3
4
5 4
4
4
4
4
4
-1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define INF 0xfffffff
#define min(a,b)(a>b?b:a)
int map[1010][1010],p[1000010*2],mark[1010],num[1010];
int n;
void fun()
{
int i,j;
p[1]=1;
for(i=2;i<1000010*2;i++)
{
if(!p[i])
{
for(j=i+i;j<1000010*2;j+=i)
{
p[j]=1;
}
}
}
}
int prim()
{
int sum=0,p=n,i,j;
int flog;
memset(mark,0,sizeof(mark));
while(--p)
{
int min=INF;
for(i=2;i<=n;i++)
{
if(!mark[i]&&map[1][i]<min)
{
min=map[1][i];
flog=i;
}
}
if(min==INF)
break;
sum+=min;
mark[flog]=1;
for(j=2;j<=n;j++)
{
if(!mark[j]&&map[1][j]>map[flog][j])
map[1][j]=map[flog][j];
}
}
if(p) return -1;
else
return sum;
}
int main()
{
int t;
fun();
scanf("%d",&t);
while(t--)
{
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&num[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
map[i][j]=INF;
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(!p[num[i]]||!p[num[j]]||!p[num[i]+num[j]])
{
map[j][i]=map[i][j]=min(min(num[i],num[j]),abs(num[i]-num[j]));
}
}
}
printf("%d\n",prim());
}
return 0;
}
hdoj--2682--Tree()的更多相关文章
- HDU 2682 Tree(Kruskal算法求解MST)
题目: There are N (2<=N<=600) cities,each has a value of happiness,we consider two cities A and ...
- hdoj 2682 Tree
Tree Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDOJ 2682 Tree(最小生成树prim算法)
Tree Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- Device Tree(二):基本概念
转自:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 一.前言 一些背景知识(例如:为何要引入Device Tree,这个机制是用 ...
- 2015暑假多校联合---Mahjong tree(树上DP 、深搜)
题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=5379 Problem Description Little sun is an artis ...
- Device Tree(三):代码分析【转】
转自:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html Device Tree(三):代码分析 作者:linuxer 发布于:201 ...
- 【转】Device Tree(二):基本概念
原文网址:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 一.前言 一些背景知识(例如:为何要引入Device Tree,这个机制 ...
- 图的最短路径问题————树上奶牛(tree.cpp)
和往常一样,继续从题目引入 树上奶牛 (tree.cpp) [题目描述] 农夫John的奶牛不是住在地上而是住在树上的QWQ. 奶牛之间需要串门,不过在串门之前他们会向John询问距离的大小.可是Jo ...
- HDURevenge of Segment Tree(第二长的递增子序列)
HDURevenge of Segment Tree(第二长的递增子序列) 题目链接 题目大意:这题是求第二长的递增子序列. 解题思路:用n^2的算法来求LIS,可是这里还要记录一下最长的那个序列是否 ...
- JQuery Easy Ui (Tree树)详解(转)
第一讲:JQuery Easy Ui到底是什么呢? 首先咱们知道JQuery是对Java Script的封装,是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等.. JQuery ui是在j ...
随机推荐
- C语言Huffman压缩和解压
符号表结构体: struct node { // 字符串形式存储的Huffman编码 char code[MAX_CODE_LENGTH]; // 这个字符在文件中出现的次数 long count; ...
- Angular 快速上手
本文系 Angular 快速上手学习笔记 安装 CLI npm install -g @angular/cli 创建工作空间和初始应用 ng new my-app 启动开发服务器 cd my-app ...
- caioj 1152 快速求模 (快速幂)
(1)开long long,不然中间结果会溢出 (2)注意一开始的初始化,保险一点. #include<cstdio> #include<cctype> #include< ...
- C++容器(三):pair类型
pair类型 在开始介绍关联容器之前,我们有必要了解一种与之相关的标准库类型–pair类型. 操作 含义 pair<T1, T2> p1 创建一个空的pair对象,它的两个元素分别为T1和 ...
- centos安全配置
http://www.dedecms.com/knowledge/servers/linux-bsd/2012/0819/8506.html 引言: 我们必须明白:最小的权限+最少的服务=最大的安全 ...
- sort函数自定义compare方法
今天看到有C++这样写: sort(ins.begin(), ins.end(), [](Interval a, Interval b){return a.start < b.start;}); ...
- 如何用一次性密码通过 SSH 安全登录 Linux
有人说,安全不是一个产品,而是一个过程.虽然 SSH 协议被设计成使用加密技术来确保安全,但如果使用不当,别人还是能够破坏你的系统:比如弱密码.密钥泄露.使用过时的 SSH 客户端等,都能引发安全问题 ...
- 关于functioncharts饼状图篇
关于functioncharts饼状图(仅限饼状图) TODO: 1.饼状图没有数据情况下,显示:no data to display 2,解决的方法:自己定义处理.显示图像或其他内容
- MySQl Study学习之--MySQl二进制日志管理
MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log) a.它包括的内容及作用例如以下: 包括了全部更新了数据或者已经潜在更新了数据(比方没 ...
- 部署zookeeper实践
1.解压zookeeper 2.环境变量设置 hadoop@namenode:~/zookeeper-3.4.6/conf$ sudo vim /etc/profile export JAVA_HOM ...