UVA 140_Bandwidth
题意:
定义一个结点的带宽是其距离所有相连结点的最远距离,一个图的带宽是图中所有结点带宽的最小值。给出一个图中各个结点的相邻情况,要求写出一个结点的排列,使得其所构成的图带宽最小。
分析:
枚举全排列+剪枝
注意:
- 输入时的处理
- 虽然结点个数不超过8个但是结点可以是26个字母中的任意一个!
- 孤立结点的情况
代码:
#include<iostream>
#include<cstring>
#include<vector>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 100;
int s[maxn], d[maxn],result[maxn], id[maxn], aa[maxn];;
int n, maxd = 0, mind = 30;
pair <char,char>pa[maxn];
vector<int>m[maxn];
int main (void)
{
char str[maxn];
scanf("%s",str);
while(str[0]!='#'){
for(int i=0; i < maxn; i++) vector<int>().swap(m[i]);
memset(aa,0,sizeof(aa));
int flag = 1,k = 0;
n=0, maxd = 0, mind = 20;
char t;
for(int i = 0; i < strlen(str); i++){
if(str[i]==';') flag=1;
else if(str[i]==':') flag=0;
else{
if(aa[str[i]-'A']==0){
id[n++] = str[i]-'A';
aa[str[i]-'A']=1;
}
if(flag==1) t=str[i];
else if(flag==0) pa[k++]=make_pair(str[i],t);
}
}
sort(id, id+n);
for(int i = 0; i < k; i++){
int a = pa[i].first-'A';
int b = pa[i].second-'A';
if(find(m[a].begin(),m[a].end(),b)==m[a].end()) m[a].push_back(b);
if(find(m[b].begin(),m[b].end(),a)==m[b].end()) m[b].push_back(a);
}
for(int i = 0; i < n; i++) s[i] = id[i];
do{
maxd = 0;
for(int i = 0; i < n; i++) d[s[i]] =i;
for(int j = 0; j < n; j ++){
for(int i = 0; i <m[id[j]].size(); i++){
if(d[m[id[j]][i]]-d[id[j]]>0)
maxd = max(maxd, d[m[id[j]][i]]-d[id[j]]);
}
if(maxd>mind) break;
}
if(mind>maxd){
mind=maxd;
for(int i = 0; i < n; i++) result[i]=s[i];
}
}while(next_permutation(s,s+n));
for(int i = 0; i < n; i++) printf("%c ",result[i]+'A');
printf("-> %d\n", mind);
scanf("%s",str);
}
}
爱上pair
好多地方处理的还是笨呼呼
UVA 140_Bandwidth的更多相关文章
- uva 1354 Mobile Computing ——yhx
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
- UVA 10564 Paths through the Hourglass[DP 打印]
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
- UVA 11404 Palindromic Subsequence[DP LCS 打印]
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
- UVA&&POJ离散概率与数学期望入门练习[4]
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
- UVA计数方法练习[3]
UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...
- UVA数学入门训练Round1[6]
UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...
- UVA - 1625 Color Length[序列DP 代价计算技巧]
UVA - 1625 Color Length 白书 很明显f[i][j]表示第一个取到i第二个取到j的代价 问题在于代价的计算,并不知道每种颜色的开始和结束 和模拟赛那道环形DP很想,计算这 ...
- UVA - 10375 Choose and divide[唯一分解定理]
UVA - 10375 Choose and divide Choose and divide Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- UVA - 11584 Partitioning by Palindromes[序列DP]
UVA - 11584 Partitioning by Palindromes We say a sequence of char- acters is a palindrome if it is t ...
随机推荐
- hihocoder offer收割编程练习赛12 B 一面砖墙
思路: 就是求哪个长度出现的次数最多. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...
- 在WIndowsPhone8 上制作的简单的计算器
今天,闲着没事,就自己做了一个小小的计算器...虽说自己刚学wp8开发没多长时间,望大神多多指教..1.这是前台页面的代码 <Grid x:Name=" Margin="10 ...
- 微信小程序组件解读和分析:十五、switch 开关选择器
switch 开关选择器组件说明: switch,开关选择器.只能选择或者不选.这种属于表单控件或者查询条件控件. switch 开关选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯 ...
- java io性能分析
摘要: 本文大多技术围绕调整磁盘文件 I/O,但是有些内容也同样适合网络 I/O 和窗口输出. 第一部分技术讨论底层的I/O问题,然后讨论诸如压缩,格式化和串行化等高级I/O问题.然而这个讨论没有包含 ...
- mybatis 返回值
转载: 在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作. 使用ibatis的 ...
- 自定义对话框(jDialog)
[配置项]jDialog options点击收起 一.接口功能 jDialog的默认配置项,本组件提供的所有对话框,都可以通过修改这些配置项来实现不同的效果. 二.详细配置项 /** * 对话框的默认 ...
- nutwk的maven中央仓库及配置
官方maven服务器:https://jfrog.nutz.cn/artifactory/jcenter/ 如果用阿里的maven服务器,特别提醒:
- js 作用域 ?????
///*第一种情况 */ //var mycars = new Array() //mycars[0] = 0; //mycars[1] = 1; //mycars[2] = 2; //functio ...
- bootparam - 介绍Linux核心的启动参数
描叙 Linux 核心在启动的时候可以接受指定的"命令行参数"或"启动参数".在通常情况下,由于核心有可能无法识别某些硬件,或可能将某些硬件识别为不正确的配置, ...
- ubuntu apt-update NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
Fetched 28.1 MB in 11s (2344 kB/s) W: GPG error: http://archive.canonical.com xenial Release: The fo ...