本文主要是介绍继续xxx定律【浙江大学】【哈希散列】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
牛客网题目链接
思路
只要是在其他数字计算过程中出现的就叫覆盖数,先用哈希表存起来,把可能关键数放在向量中,注意在输出时还需要判断一遍关键数。
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
#include <queue>
#include <cstdio>
#include <cctype>
#include <unordered_map>
#include <map>
using namespace std;
const int N = 1005;
int arr[N];
int main(){int n, x;while(cin>>n){if(!n) break;unordered_map<int, bool> mp;vector<int> vt;for(int i = 0; i < n; i++){cin>>x;if(mp.count(x)) continue;else{vt.push_back(x);while(x != 1){if(x&1) x = (3*x+1)/2;else x >>= 1;mp[x] = true; }}}reverse(vt.begin(), vt.end());int tag = 0;for(auto t: vt){if(!mp.count(t)){if(!tag){tag= 1;cout<<t;}else cout<<" "<<t;}}cout<<endl;}return 0;
}
这篇关于继续xxx定律【浙江大学】【哈希散列】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!