根据欧拉回路的性质算出来的

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相关推荐

  1. UVA 701 The Archeologists' Dilemma

    UVA_701 看了别人的解题报告之后,发现可以枚举剩余数字的位数,我们不妨设其为k,那么我们会得到不等式,N*10^k<=2^E<N*10^k,化简之后就可以得到log2(N)+k*lo ...

  2. uva 701——The Archeologists\' Dilemma

    题意:一个考古学家发现一些疑似外星人的数字,然后硬扯到2的n次方上,给定一个数,使其是2的n次方的前缀,然后求n,还有个要求即该数作为前缀的长度要小于总长度的一半. 思路:想了很久不得思路的一道题目, ...

  3. 6-14 Inspector s Dilemma uva12118(欧拉道路)

    题意:给出一个国家城市个数n   所需走过道路个数e   每条道路长t   该国家任意两个城市之间都存在唯一道路长t     要求 :找一条最短的路遍历所有所需走过的路 一开始以为是图的匹配  但是好 ...

  4. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  5. 《算法竞赛入门经典(第2版)》——学习记录

    前言:   这里主要记录本人在学习紫书过程中充分理解过的题目的AC代码,便于以后回顾时查找代码和思路,毕竟看别人的真的有点难懂.此外,本书甚至是本书之外的相关知识学习也可能在此留下记录.   作为一只 ...

  6. 算法竞赛入门经典 习题6-14

    UVa12118 Inspector's Dilemma 每两个城市之间都有道路连通,检查员要通过指定的道路,途中可以经过其它未指定的道路.通过每条道路的时间是一样的,求出通过所有指定道路要花费的最小 ...

  7. 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)

    文章目录 说明 习题 习6-1 UVA 673 平衡的括号 习6-2 UVA 712 S - 树 习6-3 UVA 536 二叉树重建 习6-4 UVA 439 骑士的移动 习6-5 UVA 1600 ...

  8. UVa Online Judge 工具網站

    UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...

  9. UIAutomatorViewer、Inspector获取元素信息

    一.UIautomatorViewer 它是Android SDK的一个工具,如果安装了 Android SDK,就可以在cmd窗口直接输入uiautomatorviewer打开. 点击左上角的第二个 ...

  10. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

最新文章

  1. Docker周报:Windows Server将支持Mesos
  2. matlab 灰色预测(有点离谱)
  3. signature=ae032dcfdc89568ef19ec0c956de36e7,来用百度密语吧!!!
  4. VS编辑器 设置智能提示
  5. powerbi的功能介绍_PowerBI 8月更新,这几个实用功能,你应该会用到
  6. Angular本地数据存储LocalStorage
  7. .net core实践系列之短信服务-架构设计
  8. 计算机网络 哪个教材好,学习计算机网络哪本教材最好?
  9. 如何使用HttpModule来实现我们日常的应用:
  10. Kafka的安装部署(分布式部署安装)
  11. Owin服务无法启动问题整理
  12. java se用哪个eclipse_javaSE----eclipse的安装与使用
  13. 八天学会Ansys命令流
  14. 平面设计师okr_掌握OKR工作法,教你快速提升工作效率
  15. 持NPDP和PMP证书,可以享受深圳、北京等多项福利!
  16. python 获取网页视频
  17. 阿里云ARM服务器通用型g6r实例CPU性能参数详解
  18. 基于51单片机的体脂检测系统设计(51+oled+hx711+us100)
  19. 【CTFhub】web-信息泄露-备份文件下载-网站源码_WriteUp
  20. c#dataview遍历_C# DataView.Find方法代码示例

热门文章

  1. 中国大学mooc慕课python答案_中国大学mooc慕课_Python游戏开发入门_章节测试答案...
  2. Vmware Vsphere HA创建集群步骤
  3. 汉诺塔游戏玩法介绍(攻略和编程实现)
  4. samba报错:smbd dead but pid file exists
  5. chrome 插件 页面请求转发_使用chrome扩展程序及jsonp实现跨域访问
  6. MySQL数据库进阶知识
  7. (2010计本3班-杨蒙)面向对象的C--实现链表操作
  8. 侧脸生成正脸概论与精析
  9. Android程序员必装apk
  10. Java实现用户输入自己的会员卡号,程序取出会员卡号的各个位数,并打印结果