uva 140 Bandwidth 带宽
来源:互联网 发布:2015最新网络神曲 编辑:程序博客网 时间:2024/04/29 23:26
题目大意:
这道题很水的,纯暴力都可以过。有点难度也就是题意不好懂。。。
题目给你一个图,表示点和点之间的连接关系,然后让你找到这样的一个字符排序,使得带宽最小。带宽是这样定义的:在字符排序中,相连的点在字符串中的最大距离。这里相连的点就是题目输入的信息,距离指的是在字符串中的距离。
比如ABCFGDHE,题目中给出A和F相连,在这个字符串中的距离就是3,A和B相连,在字符串中的距离就是1。它的带宽为3。是最小的。
#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<string>#include<cstring>#include<math.h>#include<algorithm>#include<assert.h>#include<stdlib.h>#include<stack>#include<vector>#include<map>#include<set>#define pi acos(-1.0)#define ll long longusing namespace std;struct node{ char s; char e;};node a [100];int main(){ // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); char tmp[500]; char qi; int zimu[27]={0}; while(scanf("%s",tmp)&&tmp[0]!='#') { int shu; memset(zimu,0,sizeof(zimu)); int tt=0; qi=tmp[0]; for(int i=1;i<strlen(tmp);i++) { if(tmp[i]==';') { qi=tmp[i+1]; continue; } if(tmp[i]==':') continue; zimu[tmp[i]-'A'+1]=1; zimu[qi-'A'+1]=1; a[tt].s=qi; a[tt++].e=tmp[i]; } shu=tt; char ch[30]; tt=0; for(int i=1;i<=26;i++) if(zimu[i]) ch[tt++]=char('A'-1+i); ch[tt]='\0'; sort(ch,ch+tt); int ans=99999; int Max=0; int cixun=0; string res; do { Max=0; for(int i=0;i<shu;i++) { int temp=abs(strchr(ch,a[i].s)-strchr(ch,a[i].e)); Max=max(Max,temp); if(Max>=ans) break; } if(Max<ans) { ans=Max; res=ch; } }while(next_permutation(ch,ch+tt)); cout<<res[0]; for(int i=1;i<res.size();i++) cout<<" "<<res[i]; printf(" -> %d\n",ans); } return 0;}
0 0
- uva 140 Bandwidth 带宽
- 带宽(Bandwidth,UVa 140)
- UVA 140 Bandwidth (带宽)
- 带宽(Bandwidth,UVa 140
- UVa 140 带宽 Bandwidth
- UVA-140 Bandwidth 带宽
- UVA 140 带宽 Bandwidth (暴力枚举+剪枝)
- 例题7-6 带宽(Bandwidth, UVa 140)
- 例题 7-6 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
- LINUX启动分析
- 二进制存储大数据文件
- Github how to use
- Two Sum
- java基础学习笔记(7)
- uva 140 Bandwidth 带宽
- linux下串口调试工具/串口终端推荐: picocom
- 2014-10-25Android学习--------Android应用工程文件组成
- Linux 增加sys节点技巧
- PAT (Advanced Level) Practise 1020. Tree Traversals (25)
- 判断数字是多少位数,正向反向输出
- 浅谈CSRF攻击方式
- 字符串循环移位
- 吴桐的新博客