平安网站建设发挥了积极的作用,网站开发的私活,网站开发技术与功能 需求说明,网站文章超链接怎么做正题
题目链接:https://jzoj.net/senior/#contest/show/2940/0 题目大意
一颗满二叉树#xff0c;第iii个点的儿子是i∗2i*2i∗2和i∗21i*21i∗21#xff0c;然后nnn个数填入#xff0c;求一个满足小根堆性质的字典序最大的路线。 解题思路
我们计算出每个点下面有多少个…正题
题目链接:https://jzoj.net/senior/#contest/show/2940/0 题目大意
一颗满二叉树第iii个点的儿子是i∗2i*2i∗2和i∗21i*21i∗21然后nnn个数填入求一个满足小根堆性质的字典序最大的路线。 解题思路
我们计算出每个点下面有多少个点然后贪心选择最大的即可。 codecodecode
#includecstdio
#includecstring
#includealgorithm
#define lowbit(x) (x-x)
using namespace std;
const int N65540;
int n,a[N],b[N];
void dfs(int x,int l,int r,int z)
{b[x]a[l];z--;if(!z) return;dfs(x*2,lz/21,r,z/2);dfs(x*21,l1,lz/2,z/2);
}
int main()
{scanf(%d,n);for(int i1;in;i)scanf(%d,a[i]);sort(a1,a1n);dfs(1,1,n,n);for(int i1;in;i)printf(%d ,b[i]);
}