房产网站建设ppt,随州网络科技有限公司,湖南专业seo优化,公司网站建设的目的好处Problem - F - Codeforces
题目大意#xff1a;有q次询问#xff0c;每次询问给出一个数x#xff0c;要求构造一棵n个点的树#xff0c;使得对于每次询问#xff0c;树上都有一条简单路径的长度等于x#xff0c;同时每次询问前可以对树进行一次操作#xff0c;即将一个…Problem - F - Codeforces
题目大意有q次询问每次询问给出一个数x要求构造一棵n个点的树使得对于每次询问树上都有一条简单路径的长度等于x同时每次询问前可以对树进行一次操作即将一个点与其父节点的边断开然后和其他一个点连边操作后的图必须仍是一棵树
3n500;1q500
思路通过样例可以发现如果我们按编号顺序构造一条长度为n-1的链例如n5时如下图 然后对于任意一个询问的数x我们只需要把n号点连在编号x上即可这样1到n的距离就等于x只需维护n号点当前连在哪如果已经连在x上了就输出-1-1-1
#includebits/stdc.h
//#include__msvc_all_public_headers.hpp
using namespace std;
typedef long long ll;
const int N 2e5 5;
const ll MOD 1e9 7;
ll n;
ll a[N];
void init()
{}
void solve()
{cin n;int q;cin q;init();for (int i 1; i n; i){cout i i 1 \n;}int now n - 1;for (int i 1; i q; i){int x;cin x;if (x now){cout -1 -1 -1\n;continue;}cout n now x \n;now x;} cout \n;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);int t;cin t;while (t--){solve();}return 0;
}