UVA 140 Bandwidth
来源:互联网 发布:rxjava gson解析数组 编辑:程序博客网 时间:2024/06/05 23:26
题意:给一个图(V,E),其中V为顶点集合,E为边的集合,给定V中元素的一种排序,则当前排序的带宽是相连接的点的最大距离,一个图可以有多种排序方式,求图的最小带宽,如果最小带宽对应多种排序方式,那么输出字典序小的那个
解题思路:主要是图的存储,将输入的转化为无向图的边,因为排序的方式不是固定的,所以可以用next_permutation()函数进行全排列,用do{...}while...语句,全排列都是按照字典序一个一个往下排的,所以最先符合条件的就是字典序最小的。注意如果用char存储的话最好都用char,不要char、string混用,可能会出现RE
代码:
#include <iostream>#include <algorithm>#include <string>#include <cstring>#include <cstdio>#include <cmath>using namespace std;char s[1000];int len;int g[30][30],is[30];void solve(int &i){ int id=s[i]-'A'; i++; while(i<len&&s[i]!=';') { if(s[i]>='A'&&s[i]<='Z') { int k=s[i]-'A'; g[id][k]=1; g[k][id]=1; } i++; }}int main(){ while(gets(s)) { memset(g,0,sizeof(g)); memset(is,0,sizeof(is)); if(s[0]=='#')break; len=strlen(s); int i=0; while(i<len) { if(s[i]>='A'&&s[i]<='Z')solve(i); i++; } char ss[1000]; int cnt=0; for(int i=0; i<len; i++) { if(is[s[i]-'A']==0&&s[i]>='A'&&s[i]<='Z')//存储顶点V,避免重复存储同一个顶点 { ss[cnt++]=s[i]; is[s[i]-'A']=1; } } sort(ss,ss+cnt); int ans=1e9; char str[1000]; do { int temp=0; for(int i=0;i<cnt;i++) { for(int j=i+1;j<cnt;j++) { if(g[ss[i]-'A'][ss[j]-'A']==1) { temp=max(temp,abs(i-j)); } } } if(temp<ans) { ans=temp; strcpy(str,ss); } } while(next_permutation(ss,ss+cnt)); for(int i=0;i<cnt;i++) { cout<<str[i]<<" "; } cout<<"-> "<<ans<<endl; } return 0;}
阅读全文
0 0
- UVa 140 - Bandwidth
- uva 140 - Bandwidth
- UVa 140 - Bandwidth
- uva 140 - Bandwidth
- UVa 140 - Bandwidth
- UVA 140 - Bandwidth
- UVa 140 - Bandwidth
- UVA 140 Bandwidth
- uva 140 Bandwidth
- uva 140 Bandwidth
- UVa:140 Bandwidth
- UVa 140 - Bandwidth
- uva 140 - Bandwidth
- UVa 140 Bandwidth
- UVa 140 - Bandwidth
- uva 140 Bandwidth 带宽
- UVA - 140 Bandwidth
- UVA - 140 Bandwidth
- javascript基础—keycode
- 关于MLX90614红外测温模块SMBus 协议的学习笔记<一>(附MLX90614中文资料,英文资料)
- this,call,apply
- N
- 【快速幂公式】“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-添加好友
- UVA 140 Bandwidth
- css(cascading stylesheet language)的总结
- 位域
- 安卓enableNetwork连接不上指定wifi或连接wifi后断开,连接到其他wifi的原因和解决方法
- git 使用工具教程
- linux常用命令
- sql语句应该考虑哪些安全性?
- Android 利用JNI实现串口通信
- 获取跟控制器rootViewController