Cizel level
获赞
4
粉丝
0
关注
3
看过 TA
0
武汉工程大学
2017
PHP
IP属地:未知
暂未填写个人简介
私信
关注
2016-06-21 21:21
武汉工程大学 PHP
第一题通过: #include #include using namespace std; string tenToBin(int v) { if (v == 1) { return "1"; } if (v % 2 == 0) { return tenToBin(v / 2) + "0"; } else { return tenToBin(v / 2) + "1"; } } int func(int n) { char buffer[1000]; char* end; string s = tenToBin(n); string o...
牛客615963号:#include <vector> #include <iostream> #include <string> using namespace std; int root(vector<int> &paths, int n){ int r = paths[n]; while(r != paths[r]) r = paths[r]; paths[n] = r; return r; } int main(int argc, char *argv[]) { string str; int N; while(cin >> str){ cin >> N; vector<int> paths(str.size()); for(int i=0; i<str.size(); i++) paths[i] = i; for(int i=0; i<N; i++){ int a, b; cin >> a >> b; int ra = root(paths, a); int rb = root(paths, b); if(ra < rb) paths[rb] = ra; else paths[ra] = rb; } for(int i=0; i<str.size(); i++){ for(int j=i+1; j<str.size(); j++){ if(root(paths, i) == root(paths, j)){ if(str[i] > str[j]){ char ch = str[i]; str[i] = str[j]; str[j] = ch; } } } } cout << str << endl; } return 0; } 第二题用并查集将连通的几个位置分到一组里, 然后对每个组, 做一个排序. 笔试的时候并查集有点小问题, 一直超时. 刚刚重新写了一遍竟然过了...
投递乐视网等公司7个岗位
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务