Minimum spanning tree HDU - 6954

题意:

给定n-1个点,编号从2到n,两点a和b之间的边权重为lcm(a,b)。请找出它们形成的最小生成树。
2<=n<=10000000

题解:

这题一看就眼熟。。。这不是去年的CCPC网络赛吗,当时就差这个题进区域赛,CCPC里面数据范围是n<=10 ^10 , 这个是10 ^7,前者用min25筛做,后者直接用欧拉筛就可以
HDU 6889 Graph Theory Class(CCPC网络赛)

代码:

min25筛做法
min25筛模板出处

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1000010;typedef long long ll;ll qpow(ll a, ll b)
{ll ans = 1;while(b){if(b & 1)ans = ans * a;a = a * a ;b /= 2;}return ans;
}ll prime[N], id1[N], id2[N], flag[N], ncnt, m;ll g[N], sum[N], a[N], T, n;inline ll ID(ll x)
{return x <= T ? id1[x] : id2[n / x];
}inline ll calc(ll x)
{return x * (x + 1) / 2 - 1;
}inline ll f(ll x)
{return x;
}inline void init()
{ncnt = m = 0;T = sqrt(n + 0.5);for (ll i = 2; i <= T; i++){if (!flag[i])prime[++ncnt] = i, sum[ncnt] = sum[ncnt - 1] + i;for (ll j = 1; j <= ncnt && i * prime[j] <= T; j++){flag[i * prime[j]] = 1;if (i % prime[j] == 0)break;}}for (ll l = 1; l <= n; l = n / (n / l) + 1){a[++m] = n / l;if (a[m] <= T)id1[a[m]] = m;elseid2[n / a[m]] = m;g[m] = calc(a[m]);}for (ll i = 1; i <= ncnt; i++)for (ll j = 1; j <= m && (ll)prime[i] * prime[i] <= a[j]; j++)g[j] = g[j] - (ll)prime[i] * (g[ID(a[j] / prime[i])] - sum[i - 1]);
}inline ll solve(ll x)
{if (x <= 1)return x;return n = x, init(), g[ID(n)];
}int main()
{ll n, t;scanf("%lld", &t);while(t--) {scanf("%lld", &n);n--;ll ans = (solve(n + 1) - 2 );//质数和 ll tmp = ((n + 4)  * (n-1) )  /2;printf("%lld\n", (ans + tmp) );}
}

欧拉筛做法:

Minimum spanning tree HDU - 6954相关推荐

  1. Directed Minimum Spanning Tree: Chu-Liu/Edmonds Algorithm

    我们的现代数据库大作业要求实现一个图查询系统,包括基于属性的子图查询.可达性查询(可选).最短路径查询(可选).TopK最短路径查询(可选).图形化展示(可选)等功能.分成子图同构查询小组以及可达性及 ...

  2. 《Boost》Part1 Minimum Spanning Tree

    <Boost>Part1 Minimum Spanning Tree 1.Boost中的最小生成树介绍 MST最小生成树,是图论中的基本算法,还有一种是最大生成树,此处暂不介绍. 最小生成 ...

  3. 第十三章 ALDS1_12_A:Minimum Spanning Tree 最小生成树

    知识点 树是没有环的图 在树中,任意顶点r和顶点v之间必然存在着1条路径 生成树:拥有图G的所有顶点,并且在保证自身是树的前提下拥有尽量多的边. 最小生成树(MST):个边权值总和最小的生成树 普里姆 ...

  4. HDU 4408 Minimum Spanning Tree 最小生成树计数

    http://acm.hdu.edu.cn/showproblem.php?pid=4408 题意:求最小生成树个数 题解:对于Kruskal算法,我们发现,最小生成树要想用多种方法就要有长度相同的边 ...

  5. hdu 4408 Minimum Spanning Tree

    题目连接:点击打开链接 解法:利用kruskal算法 把图划分成森林, 同一点有相同最小的权值到别的点, 通过determinant计算树的课数. 总结:模板 + 自己不太懂 = 记录 + 重新学 代 ...

  6. HDU 4408 - Minimum Spanning Tree(最小生成树计数)

    有边权的最小生成树计数 模板 #pragma comment(linker, "/STACK:1024000000,1024000000") #include <iostre ...

  7. CodeForces - 609E Minimum spanning tree for each edge(最小生成树+树链剖分+线段树/树上倍增)

    题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的无向图,现在询问包含每一条边的最小生成树 题目分析:考虑求解次小生成树的思路: 求出最小生成树 ans 枚举每一条非树边 ( u , ...

  8. 最小生成树(MST,minimum spanning tree)

    生成树:由图生成的树,由图转化为树,进一步可用对树的相关操作来对图进行操作.最小指的是权值最小: 生成树是边的集合,如下图所示的最小生成树:MST={{a,b},{a,f},{f,c}}\text{M ...

  9. 百度之星2018资格赛t6三原色图(MST minimum spanning tree)

    ac代码: #include<bits/stdc++.h> #define per(i,a,b) for(int i=a;i<=b;i++) using namespace std; ...

最新文章

  1. linux kernel devel和kernel source的区别
  2. hdu6165(拓扑排序+tarjan缩点)
  3. python中文注释缩进_Python入门学习之注释、行与缩进
  4. 使用flink Table Sql api来构建批量和流式应用(1)Table的基本概念
  5. Android:CheckBox控件
  6. mysql无法连接server 2008_SQL Server 2008登录错误:无法连接到(local)解决方法
  7. 阿里云熊鹰:基于融合、协同系统的边缘云原生架构演进和实践
  8. Linux IPC实践(9) --System V共享内存
  9. /etc/securetty文件
  10. 【译】图上的深度学习综述 五、图自编码器
  11. android循环请求数据,android – Camera2 ImageReader冻结重复捕获请求
  12. 流量限制器(Flux Limiter)
  13. HTML期末网页设计——设计报告
  14. 【Python脚本进阶】2.4、conficker蠕虫(上):Metasploit攻击Windows SMB服务
  15. 手机内存带宽和分辨率
  16. win10在哪打开ie浏览器?windows11怎么打开ie浏览器?
  17. python 杨辉三角居中打印_利用python打印杨辉三角
  18. Microsoft.NET Framework 3.5Service Pack1下载Windows功能失败原因
  19. 解密QQ号(stl库)
  20. 20-40K/月,百度车联网招聘多岗位Android工程师(地点:深圳)

热门文章

  1. mysql xa 演示_mysql的XA事务恢复过程详解
  2. 父类可以调用子类的方法吗_python类的继承、多继承及查找方法顺序
  3. 在google play开放平台上closed texting如何删除_“爷青回”!如何抢先体验《英雄联盟》手游?这份攻略送给你...
  4. php实现电脑自动关机,用批处理实现电脑自动关机
  5. 实现贝叶斯分类器_机器学习实战项目-朴素贝叶斯
  6. android.mk ndk编译选项优化,Android NDK 编译脚本分析 之一
  7. mysql如何和qt连接使用_Qt5学习:连接MySQL数据库
  8. c语言计算文件摘要值,c语言文件操作摘要.ppt
  9. python的基础知识可以应用到哪方面-Python基础知识
  10. [mybatis]Configuration XML_databaseidProvider