140:Bandwidth
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相关推荐
- UVa 140 Bandwidth【枚举排列】
题意:给出n个节点的图,和一个节点的排列,定义节点i的带宽b[i]为i和其相邻节点在排列中的最远的距离,所有的b[i]的最大值为这个图的带宽,给一个图,求出带宽最小的节点排列 看的紫书,紫书上说得很详 ...
- Uva 140 Bandwidth
基本思路是暴力枚举,思考一下可以发现,可以跳过一下情况.对于目前最小的minBW,每次枚举一种排列计算bandwidth进行比较,如果大于当前minBW已经可以断定这个排列已经不可能是最好的解了. 而 ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 提取了下刘汝佳推荐的题号...
今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started 10055 - Hashmat the Brave Warrior ...
- SitePoint播客#140:网页膨胀
Episode 140 of The SitePoint Podcast is now available! This week the panel is made up of Louis Simon ...
- bandwidth configuration for video communication
这里搜集一些关于实时视频传输的带宽需求的数据.数据来源不一,说法各异.实时视频传输的一个主要应用场景就是网络电话(微信电话,QQ视频). 实时猫的视频通信带宽要求(15fps): 分辨率 总像素数 ...
- python采集bandwidth信息
旧博文,搬到 csdn 原文:http://rebootcat.com/2018/05/21/analyze_bandwidth/ python脚本采集bandwidth 经常要做一些 linux 系 ...
- Java面试题及答案整理(2022年140道)持续更新
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~博主已将这些面试题整理到一个网站上,每天更新 Java 面试题,目前有 1万多道 Jav ...
- 博士一次性最高给140万安家费!还享副教授待遇,这所高校为了引进人才!拼了...
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:募格学术 | 综合自:澎湃新闻.皖西学院官网.中外学术 ...
最新文章
- DO YOU WANNA BUILD A SNOW MAN ?
- Flat - Music scores and guitar tabs editor(乐谱编辑器)
- 统计0到n之间1的个数
- linux nohup screen注解
- Android 4.0 截屏(Screenshot)代码流程小结
- Oracle具有开放性吗,Oracle数据库的特点与工作原理
- arduino智能浇花系统_创新成果 | 养花神器——智能浇花机
- 帝国CMS7.5会员中心美化版V1.0GBKamp;UTF
- 计算机的需求配置,软件最佳运行对计算机配置最低要求怎样?
- Disney牵手联想发布AR头显,还有配备激光剑的AR游戏《星球大战》
- 我的搜狗拼音皮肤和细胞词库都发布咯!
- 微型计算机字长取决于什么,cpu字长由什么决定
- 2013计算机学科排名,2013年世界大学学科排名 计算机科学.pdf
- php主机卫士,Bypass360主机卫士SQL注入防御八种姿势
- 【DB笔试面试642】在Oracle中,什么是基数反馈(Cardinality Feedback)?
- Apple Final Cut Pro X 10.4.6 中文特别版 Mac 最强大视频后期制作软件
- postgresql导出表结构以及数据到mysql
- access vba代码大全_这本VBA经典图书终于做活动了,还是5折!
- Python 编程导论 Chapter 4 —— 函数、作用域与抽象
- MFC radio button 设置默认选中