hdu 5631 Rikka with Graph(图)

n个点最少要n-1条边才能连通,可以删除一条边,最多删除2条边,然后枚举删除的1条边或2条边,用并查集判断是否连通,时间复杂度为O(n^3)

这边犯了个错误,

for(int i=0;i<N;i++){
fa[i]=i;
}

这个将i<=N,导致错误,值得注意

 

AC代码:

 1 #pragma comment(linker, "/STACK:1024000000,1024000000")
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<math.h>
 7 #include<algorithm>
 8 #include<queue>
 9 #include<set>
10 #include<bitset>
11 #include<map>
12 #include<vector>
13 #include<stdlib.h>
14 #include <stack>
15 using namespace std;
16 #define PI acos(-1.0)
17 #define max(a,b) (a) > (b) ? (a) : (b)
18 #define min(a,b) (a) < (b) ? (a) : (b)
19 #define ll long long
20 #define eps 1e-10
21 #define MOD 1000000007
22 #define N 106
23 #define inf 1e12
24 int n,fa[N],a[N],b[N];
25 void init(){
26    for(int i=0;i<N;i++){
27       fa[i]=i;
28    }
29 }
30 int find(int x){
31    return fa[x]==x?x:fa[x]=find(fa[x]);
32 }
33 int main()
34 {
35    int t;
36    scanf("%d",&t);
37    while(t--){
38       scanf("%d",&n);
39       for(int i=0;i<=n;i++){
40          scanf("%d%d",&a[i],&b[i]);
41       }
42       int ans=0;
43       for(int i=0;i<=n;i++){//删除一条边
44          init();
45          int cnt=n;
46          for(int j=0;j<=n;j++){
47             if(j!=i){
48                int root1=find(a[j]);
49                int root2=find(b[j]);
50                if(root1!=root2){
51                   fa[root1]=root2;
52                      cnt--;
53                }
54             }
55          }
56          if(cnt==1) ans++;
57       }
58 
59       for(int i=0;i<=n;i++){//删除两条边
60          for(int j=i+1;j<=n;j++){
61             init();
62             int cnt=n;
63             for(int k=0;k<=n;k++){
64                if(k!=i && k!=j){
65                   int root1=find(a[k]);
66                   int root2=find(b[k]);
67                   if(root1!=root2){
68                      fa[root1]=root2;
69                      cnt--;
70                   }
71                }
72             }
73             if(cnt==1)ans++;
74          }
75       }
76       printf("%d\n",ans);
77 
78    }
79     return 0;
80 }
View Code

 

贴上别人写bfs代码:

 1 #include<cstdio>
 2 #include<cstring>
 3 int n,m;
 4 struct note{
 5     int to,next;
 6 }a[210];
 7 int head[105];
 8 bool used[105];
 9 bool des[210];
10 int que[1005];
11 bool bfs(){
12     memset(used,false,sizeof(used));
13     int start=0,aim=0;
14     que[aim++]=1;
15     used[1]=true;
16     while(start<aim){
17         int num=que[start++];
18         for(int i=head[num];i!=-1;i=a[i].next){
19             if(!des[i])continue;
20             if(used[a[i].to])continue;
21             used[a[i].to]=true;
22             que[aim++]=a[i].to;
23         }
24     }
25     bool judge=true;
26     for(int i=1;i<=n;i++){
27         if(!used[i])judge=false;
28     }
29     return judge;
30 }
31 int main(){
32     int T;
33 //    freopen("5631.txt","r",stdin);
34     scanf("%d",&T);
35     while(T--){
36         scanf("%d",&n);
37         int coun=0;
38         memset(head,-1,sizeof(head));
39         m=n;
40         for(int i=0;i<=m;i++){
41             int x,y;
42             scanf("%d%d",&x,&y);
43             a[coun].to=y;
44             a[coun].next=head[x];
45             head[x]=coun++;
46             a[coun].to=x;
47             a[coun].next=head[y];
48             head[y]=coun++;
49         }
50         int ans=0;
51         memset(des,true,sizeof(des));
52         for(int i=0;i<=m;i++){
53             for(int j=i+1;j<=m;j++){
54                 des[i<<1]=des[i*2+1]=des[j*2]=des[j*2+1]=false;
55                 if(bfs())ans++;
56                 des[i<<1]=des[i*2+1]=des[j*2]=des[j*2+1]=true;
57             }
58         }
59         for(int i=0;i<=m;i++){
60             des[i<<1]=des[i*2+1]=false;
61             if(bfs())ans++;
62             des[i<<1]=des[i*2+1]=true;
63         }
64         printf("%d\n",ans);
65     }
66     return 0;
67 }
View Code

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电机编码器调零步骤_蒂森电梯编码器整定和主机整定大全

CT 编码器整定操作步骤1. 断开电源&#xff0c;吊起轿厢&#xff0c;空开曳引轮钢丝绳。2. 取出主板 JP5 的 9 与 10.11.13 的线并短接一起。3. 送电后确认 KAS,KAD,继电器吸合&#xff0c;接触器 KM1,KM2,KM3 也吸合&#xff0c;抱闸自动张开。注&#xff1a;保证安全回路 102…

4 曝光_荣耀户外手表GS Pro曝光:超强续航 9月4日发布

8月21日消息&#xff0c;荣耀海外官微今日官宣&#xff0c;荣耀首款主打户外功能的手表&#xff0c;将于9月4日海外发布。从其预热海报来看&#xff0c;这款手表应该就是国内已官宣的荣耀GS Pro。因为两张海报中的手表新品外观一致&#xff0c;均采用三防设计&#xff0c;圆形表…

atitit.atiOrmStoreService 框架的原理与设计 part1  概述与新特性

atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性 1. 新特性如下 支持生成sql在无数据库连接的情况下 2. Orm设计 主要的俩个以来service如下 Inject Dsl2sqlService dsl2sqlSvr; Inject DBX dbSvr; 作者:: 绰号:老哇的爪子 &#xff08; 全名&#xff1a;&…

lightgbm 保存模型 过大_机器学习之12—Lightgbm

Lightgbm模型和GBDT以及XGboost一样&#xff0c;都是基于决策树的boosting集成模型&#xff1b;Lightgbm是一个快速高效、低内存占用、高准确度、支持并行和大规模数据处理的数据科学工具。关于GBDT和XGboost的介绍可以参考&#xff1a;大饼&#xff1a;机器学习——提升算法(A…

python3 装饰器

2019独角兽企业重金招聘Python工程师标准>>> #!/usr/bin/env python # encoding: utf-8 # author: eddy # contact: 278298125qq.com # site: http://my.oschina.net/eddylinux # file: study_deco.py # time: 2016-02-28 12:06 # version: 1.0#基础知识 #### 第一…

判断是否大于_电动车是否属于机动车的辩论要点

现行国家标准GB/T 24158-2009在3.1章节中对电动摩托车与电动轻便摩托车进行了定义,但将要在2019年4月1日实施的新标准却删除了该定义.在09标准中对电动轻便摩托车进行了如下定义:所以说,大于20km/h或大于40kg的电动车为机动车.但是这个标准删除了故对于电动车是否属于机动车不应…

Vim常用按键操作学习

对于Vi的学习&#xff0c;在这里算是做个笔记&#xff0c;对于一些常用的命令记录下&#xff0c;以后在使用起来会更方便&#xff0c;便于以后查阅使用&#xff0c;而不需要再从去搜索。读到这你应该看出&#xff0c;这是一个笔记了&#xff0c;会比较干了。补充一句&#xff0…

c++局部对象是什么_程序员每日一题-GCROOT对象

每天一题&#xff0c;进步一点答案&#xff1a;ABCD解析首先了解一下什么是GCROOT。了解这个概念之前&#xff0c;我们先了解一下垃圾回收。简单来说&#xff0c;JVM中程序的对象都会在堆区占据一定空间&#xff0c;如果不再使用了&#xff0c;JVM就会把它清除掉。那么如何判定…

项目如何用jetty运行_如何用Cloudbase Framework部署一个Vue项目?

Cloudbase Framework 是云开发官方出品的前后端一体化部署工具&#xff0c;无需修改业务代码&#xff0c;就能将 Vue 应用前后端一键托管部署在云开发平台。借助于 Cloudbase Framework&#xff0c;你可以一键部署一个已有的 Vue 项目&#xff0c;也可以快速创建一个新的 Vue 项…

在桌面上创建路径

2019独角兽企业重金招聘Python工程师标准>>> //实例化filemanager NSFileManager*fm[NSFileManager defaultManager]; //获取桌面路径并创建新路径 NSArray*URLs[fm URLsForDirectory:NSDesktopDirectory inDomains:NSUserDomainMask]; if (URLs.count>0) { NSUR…

小米手环无法模拟门卡_颜值与功能得到全面升级,小米手环4 NFC版上手体验

提到国产智能手环&#xff0c;相信不少人第一时间想到的就是小米手环系列&#xff0c;就在前不久的时候&#xff0c;小米米家正式举办了新品发布会&#xff0c;而小米手环4系列也正式登场。与前代产品相比&#xff0c;小米手环4系列在很多方面都进行了全面升级&#xff0c;比如…

[小记]Centos7网络配置DNS配置解决、yum出错解决。

2019独角兽企业重金招聘Python工程师标准>>> Centos7&#xff1a; yum install iptables-services Error List&#xff1a; Loaded plugins: fastestmirror, Error: cannot find a valid baseurl for repo : base/7/x86_64 ... Solutions&#xff1a; a) fastest…

怎么覆盖默认样式_图形设计软件cdr教程:设置默认字体

互联网时代&#xff0c;设计师们现在都是用电脑进行设计&#xff0c;那么对字体的需求就比较多&#xff0c;CorelDRAW作为强大的平面设计软件&#xff0c;怎么在其中设置某字体为默认字体呢&#xff1f;对很多新手朋友来说&#xff0c;可能不是很理解。本文小编介绍在CDR中设置…

LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。...

Guid id new Guid(item.pictureFile); var queryFile dbContext.file_upload.FirstOrDefault(u > u.ID id);转载于:https://www.cnblogs.com/lcyuhe/p/5230921.html

hive map格式转换为字符串_Hive与MySQL的不同之处之类型转换cast和covert函数

Hive&#xff1a;cast(xxx AS 类型)如&#xff1a;cast(tm AS bigint)附上Hive基本数据类型&#xff1a;数据类型所占字节开始支持版本TINYINT1byte&#xff0c;-128 ~ 127SMALLINT2byte&#xff0c;-32,768 ~ 32,767INT4byte,-2,147,483,648 ~ 2,147,483,647BIGINT8byte,-9,22…

LeetCode - 35. Search Insert Position

35. Search Insert Position Problems Link ---------------------------------------------------------------------------- Mean: 给定一个有序数组和一个数k&#xff0c;求k在这个数组中插入的下标. analyse: 二分查找. Time complexity: O(N) view code /*** -----…

的garch预测_随机森林预测

当涉及到预测数据(时间序列或其他类型的序列)时&#xff0c;人们会关注基本回归、ARIMA、ARMA、GARCH&#xff0c;甚至Prophet&#xff0c;但不排除使用随机森林来预测数据。随机森林通常被认为是一种分类技术&#xff0c;但回归问题绝对是随机森林可以处理的。在本文中&#x…

统计abacbacdadbc中的每个字母出现的次数,输出格式是:a(4)b(3)c(3)d(2)

2019独角兽企业重金招聘Python工程师标准>>> import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; /** 统计abacbacdadbc中的每个字母出现的次数&#xff0c;输出格式是&#xff1a;a(4)b(3)c(3)d(2)* * 选中TreeMa…

python isupper需要调包吗_密码强度等级

1# 思路&#xff1a;将统计情况放主函数中一起写&#xff0c;避免分开写时多次遍历密码字符串。while True:try:password input().strip()score 0 # 初始化得分为0# 长度得分if len(password) < 4:score 5elif 5 < len(password) < 7:score 10else:score 25# 字…

入侵分析十诫

这些年来&#xff0c;笔者一直积极参与入侵检测分析师的培训和发展工作&#xff0c;同时还担任了 SANS 信息安全课程《深入入侵检测》&#xff08;编号503&#xff09;的授课导师。笔者发现自己一直在不断改变对有效入侵检测的哲学认识。然而&#xff0c;不论该哲学如何演化&am…