博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CF】270D Design Tutorial: Inverse the Problem
阅读量:6370 次
发布时间:2019-06-23

本文共 1322 字,大约阅读时间需要 4 分钟。

题意异常的简单。就是给定一个邻接矩阵,让你判定是否为树。

算法1:O(n^3)。思路就是找到树边,原理是LCA。判断树边的数目是否为n-1。39-th个数据T了,自己测试2000跑到4s。
算法2:O(n^2)。思考由图如何得到树,显然MST是可行的。因此,题目变为直接找到MST。然后通过树边构建目标矩阵。判定矩阵是否相等。

1 /* 472D */  2 #include 
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 #include
18 #include
19 using namespace std; 20 //#pragma comment(linker,"/STACK:102400000,1024000") 21 22 #define mpii map
23 #define vi vector
24 #define pii pair
25 #define vpii vector
> 26 #define rep(i, a, n) for (int i=a;i
=a;--i) 28 #define pb push_back 29 #define mp make_pair 30 #define fir first 31 #define sec second 32 #define all(x) (x).begin(),(x).end() 33 #define SZ(x) ((int)(x).size()) 34 #define lson l, mid, rt<<1 35 #define rson mid+1, r, rt<<1|1 36 37 const int maxn = 2005; 38 const int INF = 0x3f3f3f3f; 39 int M[maxn][maxn]; 40 int T[maxn][maxn]; 41 int dist[maxn]; 42 int fa[maxn]; 43 bool visit[maxn]; 44 int n; 45 46 void kruskal() { 47 memset(visit, false, sizeof(visit)); 48 memset(dist, 0x3f, sizeof(dist)); 49 int v, mn; 50 int i, j, k; 51 52 dist[0] = 0; 53 for (i=0; i

 

转载于:https://www.cnblogs.com/bombe1013/p/4596576.html

你可能感兴趣的文章
怎样做一个企业?尤其是在这个互联网时代
查看>>
DVNA:Node.js打造的开源攻防平台
查看>>
17个案例带你3分钟搞定Linux正则表达式
查看>>
Java 8 比较器:如何对 List 排序
查看>>
苹果是否步思科后尘折戟中国
查看>>
漏洞预警!微软曝光震网三代漏洞,隔离网面临重大危机
查看>>
协鑫集成第二批1000台E-KwBe光伏储能设备即将启运澳洲
查看>>
爱立信物联网广州路演
查看>>
云计算企业业绩分化明显 9家上市公司中期预喜
查看>>
《VMware Virtual SAN权威指南(原书第2版)》一3.5 可能发生的网络配置问题
查看>>
SK电讯发布Q2财报 净利润同比下降26.9%
查看>>
零售品牌如何驾驭大数据主导商业决策?
查看>>
经济模式UPS在数据中心的应用(上)
查看>>
Intel首款32核Xeon E5 v5跑分曝光:史上最强
查看>>
中国基于国产龙芯处理器的大数据一体机
查看>>
物联网影响商业发展三要素
查看>>
China Unicom and Chunghwa Telecom work together&nb
查看>>
Java图片上查找图片算法
查看>>
Python fabric实现远程操作和部署
查看>>
详解Java中staitc关键字
查看>>