博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 12118 Inspector's Dilemma(连通性,欧拉路径,构造)
阅读量:6275 次
发布时间:2019-06-22

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

只和连通分量以及度数有关。不同连通分量只要连一条边就够了,连通分量为0的时候要特判。一个连通分量只需看度数为奇的点的数量,两个端点(度数为奇)是必要的。

如果多了,奇点数也一定是2的倍数(一条边增加两个度数,总度数是偶数),把多余的成对奇点连边,一定存在一条欧拉路径。

并查集维护或者dfs都可以。

/**********************************************************      --------------Tyrannosaurus---------              **   author AbyssalFish                                   ***********************************************************/#include
using namespace std;typedef long long ll;int V,E,T;const int maxv = 1001;int pa[maxv], deg[maxv], wei[maxv], odd[maxv];int fd(int x){ return x==pa[x]?x:pa[x]=fd(pa[x]); }bool jot(int a,int b){ int x = fd(a), y = fd(b); if(x != y){ pa[x] = y; wei[y] += wei[x]; return true; } return false;}int cop;int ver[maxv], sz;void newVertex(int i){ ver[sz++] = i; odd[i] = 0; pa[i] = i; wei[i] = 1; deg[i] = 0; cop++;}//#define LOCALint main(){#ifdef LOCAL freopen("in.txt","r",stdin);#endif int kas = 0; while(scanf("%d%d%d",&V,&E,&T),V){ memset(wei+1,0,sizeof(int)*V); cop = 0; sz = 0; for(int i = 0; i < E; i++){ int a , b; scanf("%d%d",&a,&b); if(!wei[a]) newVertex(a); if(!wei[b]) newVertex(b); deg[a]++; deg[b]++; if(jot(a,b)) cop--; } int ans = E + (cop?cop-1:0); for(int i = 0; i < sz; i++){ int v = ver[i]; if(deg[v] & 1) odd[fd(v)]++; } for(int i = 0; i < sz; i++){ int o = odd[ver[i]]; if(o >= 4) ans += (o>>1) -1; } printf("Case %d: %d\n",++kas, ans*T); } return 0;}

 

转载于:https://www.cnblogs.com/jerryRey/p/4957726.html

你可能感兴趣的文章
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>
《UNIX网络编程 卷1:套接字联网API(第3版)》——8.6 UDP回射客户程序:dg_cli函数...
查看>>
不要将时间浪费到编写完美代码上
查看>>
《第一桶金怎么赚——淘宝开店创业致富一册通》一一第1章 创业梦想,怎样起步...
查看>>
基于容器服务的持续集成与云端交付(三)- 从零搭建持续交付系统
查看>>
《算法基础:打开算法之门》一3.4 归并排序
查看>>