UVA-140 Bandwidth
2015-04-20 22:35
369 查看
bandwith指在一个给定排列中 一个点与相连点的距离,所有点bandwith最大值为排列的bandwidth
给定节点和路径找出bandwidth排列,如果有多个排列bandwidth一样,输出字典序最小的一个
用一个vector保存路径,暴力枚举,找出所求排列
没想到没有优化直接枚举竟然不超时。。。
给定节点和路径找出bandwidth排列,如果有多个排列bandwidth一样,输出字典序最小的一个
用一个vector保存路径,暴力枚举,找出所求排列
没想到没有优化直接枚举竟然不超时。。。
#include<bits/stdc++.h> using namespace std; string ans1; int ans2; int len(string s,char a,char b){ int x,y; for(int i=0;i<s.length();i++){ if(s[i]==a) x=i; if(s[i]==b) y=i; } return (x>y)?x-y:y-x; } void bandwidth(string s,vector<int>* board){ int ans=0; for(int i=0;i<26;i++){ for(int j=0;j<26;j++){ if(board[i][j]==1){ int l=len(s,i+'A',j+'A'); if(l>ans){ ans=l; } } } } if(ans<ans2){ ans2=ans; ans1=s; } } void dfs(string s,vector<int>* board,set<char>& node){ if(s.length()==node.size()){ bandwidth(s,board); } else { s.resize(s.length()+1); for(set<char>::iterator i=node.begin();i!=node.end();i++){ s[s.length()-1]=*i; int ok=1; for(int j=0;j<s.length()-1;j++) if((*i)==s[j]) ok=0; if(ok){ dfs(s,board,node); } } } } int main() { string line; stringstream ll; while(getline(cin,line)&&line!="#"){ vector<int> board[26]; for(int i=0;i<26;i++) board[i].resize(26); ll<<line; char c; set<char> node; while(ll>>c){ char t=c; node.insert(c); ll>>c; while(ll>>c&&c!=';'){ board[c-'A'][t-'A']=board[t-'A'][c-'A']=1; node.insert(c); } } ll.clear(); /*cout<<" "; for(int i=0;i<26;i++) cout<<(char)('A'+i)<<" "; cout<<endl; for(int i=0;i<26;i++){ cout<<(char)('A'+i)<<" "; for(int j=0;j<26;j++) if(j==25) cout<<board[i][j]<<endl; else cout<<board[i][j]<<" "; }*/ string s; ans1.clear(); ans2=999; dfs(s,board,node); for(int i=0;i<ans1.length();i++){ cout<<ans1[i]<<" "; } cout<<"-> "; cout<<ans2<<endl; } return 0; }
相关文章推荐
- UVa - 140 - Bandwidth
- 例题 7-6 UVA - 140 Bandwidth 带宽 (全排列暴力)
- UVA140 ——bandwidth(搜索)
- UVa 140 - Bandwidth(回溯)
- uva 140 bandwidth (好题) ——yhx
- UVA - 140 Bandwidth(全排列枚举)
- UVa 140 - Bandwidth(全排列+回溯剪枝)
- UVa - 140 - Bandwidth
- uva 140 Bandwidth (下一个序列+判断)
- UVa 140 (枚举排列) Bandwidth
- UVA140 - Bandwidth (暴力dfs+排列+剪枝)
- UVa 140 - Bandwidth
- uva140 Bandwidth(排列树+剪枝)
- UVaOJ140 - Bandwidth
- UVa140 - Bandwidth
- uva 140 bandwidth (好题) ——yhx
- uva 140 bandwidth (好题) ——yhx
- UVA 140 Bandwidth 暴力模拟
- uva140 - Bandwidth
- UVa 140 - BandWidth (暴力)