UVa 12118 Inspector's Dilemma
根据欧拉回路的性质算出来的
http://blog.csdn.net/wcr1996/article/details/43309671
看了大神的,写下自己理解
假设一开始只有题中给定的限定的边,若不联通,就一条一条边加,加边要加在两个奇点之间,但是题目只要求求至少有几条边,所以只需算一下就好了。
计算所有奇点数,连接n个点最少n-1条边若没有E边的限制,且一共只能有两个奇点。
第一次发现用vector记录边特别方便..
#include<iostream>
#include<cstring>
#include<set>
#include<vector>
#include<cstdio>
#include<queue>
#include<cctype>
using namespace std;
const int maxn=1005;
int n,w,vis[maxn],cnt,k;
vector<int> G[maxn];
void dfs(int u)
{if(vis[u]) return;vis[u]=1;cnt+=G[u].size()%2==1?1:0; //记录奇点个数for(int v=0;v<G[u].size();v++)dfs(G[u][v]);
}
int solve()
{int ans=0;memset(vis,0,sizeof(vis));for(int i=1;i<=n;i++)if(!vis[i]&&!G[i].empty()){cnt=0;dfs(i); //每一连通组的奇点数保存在cnt中 ans+=max(cnt,2);} //ans中是所有图的奇点数 return max(ans/2-1,0)+k; /*根据欧拉道路,要形成一笔画(而且是链式的),图中只能有两个奇点已经知道有几个奇点,且连一条边消去2个奇点,一共有ans个奇点,所以要加(ans/2-1)个边,最后只剩下起点,结尾两个奇点 */
}
int main()
{int kase=0;while(scanf("%d%d%d",&n,&k,&w)&&n){memset(G,0,sizeof(G));for(int i=0;i<k;i++){int x,y;scanf("%d%d",&x,&y);G[x].push_back(y);G[y].push_back(x);}int ans=solve();printf("Case %d: %d\n",++kase,ans*w);}}
UVa 12118 Inspector's Dilemma相关推荐
- UVA 701 The Archeologists' Dilemma
UVA_701 看了别人的解题报告之后,发现可以枚举剩余数字的位数,我们不妨设其为k,那么我们会得到不等式,N*10^k<=2^E<N*10^k,化简之后就可以得到log2(N)+k*lo ...
- uva 701——The Archeologists\' Dilemma
题意:一个考古学家发现一些疑似外星人的数字,然后硬扯到2的n次方上,给定一个数,使其是2的n次方的前缀,然后求n,还有个要求即该数作为前缀的长度要小于总长度的一半. 思路:想了很久不得思路的一道题目, ...
- 6-14 Inspector s Dilemma uva12118(欧拉道路)
题意:给出一个国家城市个数n 所需走过道路个数e 每条道路长t 该国家任意两个城市之间都存在唯一道路长t 要求 :找一条最短的路遍历所有所需走过的路 一开始以为是图的匹配 但是好 ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 《算法竞赛入门经典(第2版)》——学习记录
前言: 这里主要记录本人在学习紫书过程中充分理解过的题目的AC代码,便于以后回顾时查找代码和思路,毕竟看别人的真的有点难懂.此外,本书甚至是本书之外的相关知识学习也可能在此留下记录. 作为一只 ...
- 算法竞赛入门经典 习题6-14
UVa12118 Inspector's Dilemma 每两个城市之间都有道路连通,检查员要通过指定的道路,途中可以经过其它未指定的道路.通过每条道路的时间是一样的,求出通过所有指定道路要花费的最小 ...
- 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)
文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...
- UVa Online Judge 工具網站
UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...
- UIAutomatorViewer、Inspector获取元素信息
一.UIautomatorViewer 它是Android SDK的一个工具,如果安装了 Android SDK,就可以在cmd窗口直接输入uiautomatorviewer打开. 点击左上角的第二个 ...
- [搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...
最新文章
- Docker周报:Windows Server将支持Mesos
- matlab 灰色预测(有点离谱)
- signature=ae032dcfdc89568ef19ec0c956de36e7,来用百度密语吧!!!
- VS编辑器 设置智能提示
- powerbi的功能介绍_PowerBI 8月更新,这几个实用功能,你应该会用到
- Angular本地数据存储LocalStorage
- .net core实践系列之短信服务-架构设计
- 计算机网络 哪个教材好,学习计算机网络哪本教材最好?
- 如何使用HttpModule来实现我们日常的应用:
- Kafka的安装部署(分布式部署安装)
- Owin服务无法启动问题整理
- java se用哪个eclipse_javaSE----eclipse的安装与使用
- 八天学会Ansys命令流
- 平面设计师okr_掌握OKR工作法,教你快速提升工作效率
- 持NPDP和PMP证书,可以享受深圳、北京等多项福利!
- python 获取网页视频
- 阿里云ARM服务器通用型g6r实例CPU性能参数详解
- 基于51单片机的体脂检测系统设计(51+oled+hx711+us100)
- 【CTFhub】web-信息泄露-备份文件下载-网站源码_WriteUp
- c#dataview遍历_C# DataView.Find方法代码示例
热门文章
- 中国大学mooc慕课python答案_中国大学mooc慕课_Python游戏开发入门_章节测试答案...
- Vmware Vsphere HA创建集群步骤
- 汉诺塔游戏玩法介绍(攻略和编程实现)
- samba报错:smbd dead but pid file exists
- chrome 插件 页面请求转发_使用chrome扩展程序及jsonp实现跨域访问
- MySQL数据库进阶知识
- (2010计本3班-杨蒙)面向对象的C--实现链表操作
- 侧脸生成正脸概论与精析
- Android程序员必装apk
- Java实现用户输入自己的会员卡号,程序取出会员卡号的各个位数,并打印结果