题意:https://atcoder.jp/contests/arc163/tasks/arc163_c
思路:本题构造主要就是围绕
文章来源:https://www.toymoban.com/news/detail-520263.html
初始放入2,3,6,然后一直将一个拆解直到满足大小。文章来源地址https://www.toymoban.com/news/detail-520263.html
/*keep on going and never give up*/
#include<cstdio>
#include<iostream>
#include<queue>
#include<set>
#include<algorithm>
using namespace std;
#define int long long
typedef pair<int, int> pii;
#define lowbit(x) x&(-x)
#define endl '\n'
#define wk is zqx ta die
signed main() {
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
set<int> st;
st.insert(2);
st.insert(3);
st.insert(6);
if (n == 1) {
cout << "Yes" << endl;
cout << '1' << endl;
continue;
}
if (n == 2) {
cout << "No" << endl;
continue;
}
while (st.size() < n) {
for (int i : st) {
// cout << i << endl;
int a = i + 1;
int b = i * (i + 1);
if (!st.count(a) && !st.count(b)) {
st.insert(a);
st.insert(b);
st.erase(i);
break;
}
}
}
cout << "Yes" << endl;
for (int i : st) {
cout << i << " ";
}
cout << endl;
}
return 0;
}
到了这里,关于arc163 C 思维构造的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!