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;圆形表…

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中设置…

的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…

[译]机器人操作系统简介:终极机器人应用框架(上)

2019独角兽企业重金招聘Python工程师标准>>> [译]机器人操作系统简介&#xff1a;终极机器人应用框架 /*** 原文出处&#xff1a;https://www.toptal.com/robotics/introduction-to-robot-operating-system* author dogstar.huang <chanzonghuanggmail.com> 2…

AIKit v4.11.0 – WordPress AI 自动编写器、聊天机器人、写作助手和内容重定向器 / OpenAI GPT 插件

AIKit v4.11.0&#xff1a;WordPress的AI革命 一、引言 AIKit v4.11.0是一款为WordPress用户精心设计的强大插件&#xff0c;该插件集成了OpenAI的GPT-3技术&#xff0c;为用户提供了前所未有的AI写作和聊天机器人功能。此版本的推出&#xff0c;将WordPress的功能扩展到了全新…

精华阅读第6期|程序猿的世界,你不懂!

上周&#xff0c;微信圈被一篇文章刷屏了&#xff01;那就是西乔出品的《你为什么总招不到程序员&#xff1f;》&#xff0c;西乔的漫画之所以这么火&#xff0c;很重要的原因就是她懂程序猿的生活&#xff0c;同时作品也能够引起大家的共鸣。其实&#xff0c;移动开发精英俱乐…

恒生估值系统_恒生指数和恒生国企指数投资价值分析

恒生指数和恒生国企指数都是港股的大蓝筹指数。恒生指数是从香港股票市场挑选出50只优质蓝筹股票组成的指数。恒生国企指数又称为H股指数。H股指注册地在内地&#xff0c;但是上市地在香港的外资股票。恒生国企指数的成分股数目是没有限制的&#xff0c;但是必须为市值最大&…

java程序练习

数组求和作业 开发环境&#xff1a;java 工具&#xff1a;eclipse 两种数据类型excel和csv 在同学建议下&#xff0c;我选择用csv文件打开&#xff0c;这就引来了第一个问题&#xff0c;在java中如何调用csv文件。以下是我百度的结果 http://www.educity.cn/java/627496.html &…

hwd是长宽高吗_五菱皮卡要来了,五种形态任你选,颜值是你期待的吗?

近日&#xff0c;网友上传了五菱皮卡的渲染图&#xff0c;引起了大家对五菱皮卡的热烈讨论。在刚过去的2020年&#xff0c;五菱凭借性价比超高的宏光MINI EV成为了新能源领域的领头羊&#xff0c;而后推出的‘大四座’家用车五菱凯捷也取得了五万台的预定量&#xff0c;五菱一时…