Codevs 4909 寂寞的堆

2023-12-25 16:18
文章标签 codevs 寂寞 4909

本文主要是介绍Codevs 4909 寂寞的堆,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4909 寂寞的堆
时间限制: 1 s
空间限制: 8000 KB
题目等级 : 大师 Master
题目描述 Description
堆,是一种神奇的数据结构 不寂寞的堆,是一棵满二叉树,其儿子节点的key值都不大于父亲节点的key值 久而久之,不寂寞的堆寂寞了,它不满足于自己这无聊又乏味的性质,于是它提出要求,在自己本身性质的基础上,对于堆中任意一个非叶子节点,它的左子树中任意节点的key值都不能大于其右子树任意节点的key值 我们称满足上述两个条件的满二叉树为寂寞的堆 给定你一棵满二叉树,询问最少修改多少个节点的key值,才能使它变成寂寞的堆
输入描述 Input Description
第一行是层数 表示完全二叉树共n层
之后每一行表示该i层所有叶子节点的值
可能有数据稍大 推荐开long long
输出描述 Output Description
最小的k值
样例输入 Sample Input
2
2
1 2
样例输出 Sample Output
0
数据范围及提示 Data Size & Hint
dp
n<=18
对于30%的数据 n<=2
对于60%的数据 n<=10

/*
由树用后序遍历搞成序列.
然后求LIS(nlogn). 
*/
#include<cstdio>
#include<algorithm>
#include<cmath>
#define MAXN 200001
#define LL long long
using namespace std;
struct data{LL lc,rc;}tree[MAXN*4];
LL n,s[MAXN],a[MAXN],tot,ans,cut,len,c[MAXN];
LL read()
{LL x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();return x*f;
}
void slove(LL x)
{if(tree[x].lc) slove(tree[x].lc);if(tree[x].rc) slove(tree[x].rc);s[++tot]=a[x];
}
void erfenlis()
{for(LL i=1;i<=tot;i++)if(s[i]>=c[len]) c[++len]=s[i];else{LL p=upper_bound(c+1,c+len+1,s[i])-c;c[p]=s[i];}
}
int main()
{LL x,z;n=read();for(LL i=1;i<=n;i++){for(LL j=1;j<=pow(2,i-1);j++){cut++;a[cut]=read();if(j%2==1) tree[cut/2].lc=cut;else tree[cut/2].rc=cut;}}slove(1);erfenlis();printf("%lld",cut-len);return 0;
}

这篇关于Codevs 4909 寂寞的堆的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/536127

相关文章

耐得寂寞,拥得繁华

生活不可能像你想象得那么好,但也不会像你想象得那么糟。我觉得人的脆弱和坚强都超乎自己的想象。有时,我可能脆弱得一句话就泪流满面,有时,也发现自己咬着牙走了很长的路。——莫泊桑   但以这样的一句话作为开头,看高木直子的《一个人住第五年》的时候还在国内,那时觉得那样的生活根本不可能发生在我身上,连吃饭都要人陪着的我无法忍受一个人吃饭的感觉。所以后来,有很长的一段时间里我都没能适应一个人吃饭,一个

codevs 1028 花店橱窗布置 最小费用最大流

花与花瓶连边,容量为1,费用为对应费用,s向花连边,容量为1,费用为0,花瓶向t连边,容量为1,费用为0。这里要求最大费用,把费用设为相反数,结果也取相反数。 #include<iostream>#include<cstring>#include<cstdio>#include<queue>#define inf 1000000000using namespace std;int

codevs 1074食物链 并查集

a和b之间有三种关系,a和b同类,a吃b,b吃a,用a+n表示a吃的,a+2*n表示吃a的。与关押犯人一样,但这里要影射出2种虚拟的才足以表示出关系。 #include<cstdio>#include<iostream>using namespace std;int n,k,d,x,y;int fa[200000];int find(int x){return x==fa[x]?

hdu 4909 String(计数)

题目链接:hdu 4909 String 题目大意:给定一个字符串,由小写字母组成,最多包含一个问号,问号可以表示空或者任意一个字母。问有多少个子串,字母出现的次数均为偶数。 解题思路:因为最多又26个字母,对应每个字母的奇数情况用1表示,偶数情况用0.将一个前缀串表示成一个二进制数。然后对于每种相同的数s,任选两个即为一种可行子串(组合数学). 接着对于有问号的情况枚举一下问号替代的字

HDU 4909 String BestCoder第三轮第三题

这个题参考的大神的代码。。 我的AC代码 #include<cstdio>#include<cstring>#include<iostream>#include<iomanip>#include<queue>#include<cmath>#include<stack>#include<map>#include<vector>#include<set>#include<a

我今年50岁,做了测绘30年,这个行业特别寂寞,但也特别赚钱

特别寂寞,但是很赚钱;形势转好,累却有盼头;事业单位转企改制,充满紧迫感——这是张维(化名,下同)测绘生涯的三个转折点。 张维1969年出生,中专专修工程测量,1990年毕业后从事基础测绘工作。目前是辽宁省地矿测绘院有限责任公司工作人员。 在传统测绘事业边界越发模糊,融合成为时代发展趋势的当下,张维回顾自己的测绘从业历程感慨万千。其经历也在一定程度上反映了近年来我国测绘的发展剪影。

xth 砍树(codevs 1369)

题目描述  Description 在一个凉爽的夏夜,xth 和 rabbit 来到花园里砍树。为啥米要砍树呢?是这样滴,小菜儿的儿子窄森要出生了。Xth这个做伯伯的自然要做点什么。于是他决定带着rabbit 去收集一些木材,给窄森做一个婴儿车……(xth 早就梦想着要天天打菜儿他儿窄森的小 pp,到时候在婴儿车里安装一个电子遥控手臂,轻轻一按,啪啪啪……“乌卡卡——”xth 邪恶滴笑了,

Codevs P1036 商务旅行

Codevs P1036 商务旅行 题目描述 Description 某首都城市的商人要经常到各城镇去做生意,他们按自己的路线去做,目的是为了更好的节约时间。 假设有N个城镇,首都编号为1,商人从首都出发,其他各城镇之间都有道路连接,任意两个城镇之间如果有直连道路,在他们之间行驶需要花费单位时间。该国公路网络发达,从首都出发能到达任意一个城镇,并且公路网络不会存在环。 你的任务是帮助该

寂寞才说爱

走在我身边你没有笑脸我知道你想开口说抱歉你无辜双眼不敢再看我害怕用情已被你欺骗 说爱太简单分手不情愿我听到都是虚伪的谎言如果你不爱就别走过来现在要离开叫我该如何忘怀 寂寞才说爱为何你要那么坏当初是谁告白说爱永远不改什么地老天荒什么地久天长爱不该因你寂寞才存在寂寞时的爱到底爱的该不该你根本就不爱可我还放不开是寂寞在作怪幻想还有未来爱是寂寞撒的谎我明白 走在我身边你没有笑脸我知道你想开口说抱歉你

不是因为寂寞才想你

这是陶钰玉在“深夜地下铁”的一首老歌了,清新如同山里的一弯小溪,动人的歌声,依旧如同“深夜地下铁”;一句:“当泪落下的时候,所有风景都沉默” ,无语啊 ... 特将此曲从ape转换到mp3格式,处理方式为 foobar2000 加 lame,320K 联合立体声模式。 下载:http://dl.dbank.com/c0jc6derak 相遇在人海 聚散在重逢之外醒来的窗台 等着月光洒下来不用