Bandwidth

注意节点不一定是按字母表顺序从前到后用的,也有可能是A C 却没用B,因为这个TLE了好几次。。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 26;
int L,w;
char s[100];
int seq[maxn],vis[maxn],res[maxn],num[maxn],v[maxn]; //num是每个节点的邻居个数
int G[maxn][maxn];int compare(int A[],int B[]){for(int i = 0; i < L; i++){if(A[i] < B[i]) return 1;if(A[i] > B[i]) return 0;}return 1;
}
void dfs(int cur,int wt){if(cur == L){if(wt < w || (wt == w && compare(seq,res))){w = wt;for(int i = 0; i < L; i++){res[i] = seq[i];}}return;}else{for(int i = 0;i < maxn;i++){if(!v[i] || vis[i]) continue;seq[cur] = i;vis[i] = 1;int t = 0;for(int j = 0;j < cur;j++){if(G[seq[cur]][seq[j]]){t++;wt = max(wt,cur - j);}}if(wt <= w && num[cur]-t <= w) dfs(cur+1,wt);//wt是当前序列两节点间的最大距离,如果大于当前最小带宽w则剪枝//如果cur节点尚有m个邻居没有确定位置,那么对于cur来说,最理想的情况就是这m个//邻居紧跟在cur后面,这时cur的最大距离是m,这种排列的最小带宽一定不会比m小,//所以如果m大于w,也需要剪枝vis[i] = 0;}}
}
int main()
{// freopen("data.in","r",stdin);// freopen("data.out","w",stdout);while(scanf("%s",s) && s[0] != '#'){memset(G,0,sizeof(G));memset(v,0,sizeof(v));memset(num,0,sizeof(num));int len = strlen(s);L = 0;for(int i = 0;i < len;i++){int j = s[i++] - 'A';if(!v[j]){ v[j] = 1; L++; }while(isalpha(s[++i])){int t = s[i] - 'A';if(!v[t]){ v[t] = 1; L++; }G[j][t] = 1;G[t][j] = 1;}}w = 100;dfs(0,0);for(int i = 0;i < L;i++) printf("%c ",'A' + res[i]);printf("-> %d\n",w);}return 0;
}

转载于:https://www.cnblogs.com/JingwangLi/p/10202694.html

140:Bandwidth相关推荐

  1. UVa 140 Bandwidth【枚举排列】

    题意:给出n个节点的图,和一个节点的排列,定义节点i的带宽b[i]为i和其相邻节点在排列中的最远的距离,所有的b[i]的最大值为这个图的带宽,给一个图,求出带宽最小的节点排列 看的紫书,紫书上说得很详 ...

  2. Uva 140 Bandwidth

    基本思路是暴力枚举,思考一下可以发现,可以跳过一下情况.对于目前最小的minBW,每次枚举一种排列计算bandwidth进行比较,如果大于当前minBW已经可以断定这个排列已经不可能是最好的解了. 而 ...

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

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

  4. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  5. SitePoint播客#140:网页膨胀

    Episode 140 of The SitePoint Podcast is now available! This week the panel is made up of Louis Simon ...

  6. bandwidth configuration for video communication

     这里搜集一些关于实时视频传输的带宽需求的数据.数据来源不一,说法各异.实时视频传输的一个主要应用场景就是网络电话(微信电话,QQ视频).  实时猫的视频通信带宽要求(15fps): 分辨率 总像素数 ...

  7. python采集bandwidth信息

    旧博文,搬到 csdn 原文:http://rebootcat.com/2018/05/21/analyze_bandwidth/ python脚本采集bandwidth 经常要做一些 linux 系 ...

  8. Java面试题及答案整理(2022年140道)持续更新

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...

  9. 博士一次性最高给140万安家费!还享副教授待遇,这所高校为了引进人才!拼了...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:募格学术 |  综合自:澎湃新闻.皖西学院官网.中外学术 ...

最新文章

  1. DO YOU WANNA BUILD A SNOW MAN ?
  2. Flat - Music scores and guitar tabs editor(乐谱编辑器)
  3. 统计0到n之间1的个数
  4. linux nohup screen注解
  5. Android 4.0 截屏(Screenshot)代码流程小结
  6. Oracle具有开放性吗,Oracle数据库的特点与工作原理
  7. arduino智能浇花系统_创新成果 | 养花神器——智能浇花机
  8. 帝国CMS7.5会员中心美化版V1.0GBKamp;UTF
  9. 计算机的需求配置,软件最佳运行对计算机配置最低要求怎样?
  10. Disney牵手联想发布AR头显,还有配备激光剑的AR游戏《星球大战》
  11. 我的搜狗拼音皮肤和细胞词库都发布咯!
  12. 微型计算机字长取决于什么,cpu字长由什么决定
  13. 2013计算机学科排名,2013年世界大学学科排名 计算机科学.pdf
  14. php主机卫士,Bypass360主机卫士SQL注入防御八种姿势
  15. 【DB笔试面试642】在Oracle中,什么是基数反馈(Cardinality Feedback)?
  16. Apple Final Cut Pro X 10.4.6 中文特别版 Mac 最强大视频后期制作软件
  17. postgresql导出表结构以及数据到mysql
  18. access vba代码大全_这本VBA经典图书终于做活动了,还是5折!
  19. Python 编程导论 Chapter 4 —— 函数、作用域与抽象
  20. MFC radio button 设置默认选中

热门文章

  1. Silverlight C# 游戏开发:项目开发实例和小技巧索引
  2. FTP用户无法登陆排错详解
  3. 擷取 GridView 資料列的欄位值集合
  4. C#程序设计语言2.0简介
  5. vim学习、各类插件配置与安装【转】
  6. 基于Twemproxy的Redis集群方案
  7. php学习_第8章_PHP面向对象的程序设计
  8. 在Windows Server 2008中安装Exchange Server 2007 SP1
  9. 如何监控一个Activity加载完毕(完成渲染)
  10. 《『若水新闻』客户端开发教程》——14.代码编写(6)