Uva 136 Ugly Numbers(优先队列,广搜)
题目链接:https://vjudge.net/problem/UVA-136
第一次知道不加换行符也能wa...
题意
丑数是素因子只有 2、3、5 的数,输出第 1500 个丑数。
思路
按照定义从 1 开始构造即可。
代码
#include <bits/stdc++.h> using LL = long long; using namespace std; priority_queue <LL, vector<LL>, greater<LL>> que; set<LL> st; int main() { que.push(1); st.insert(1); for (int i = 1; i <= 1500; i++) { LL x = que.top(); que.pop(); for (LL i : {2, 3, 5}) { LL t = i * x; if (st.count(t) == 0) { que.push(t); st.insert(t); } } if (i == 1500) cout << "The 1500'th ugly number is " << x << ".\n"; } }