终于A题啦鼓掌~开心~
开考看完题后,觉得第二题很好捏(傻叉上线
搞到十一点准备弃疗了然后突然发现我会做第一题
于是瞎码了码,就去准备饭票了。。。
好了,停止扯淡(就我一个我妹子每天不说话好难受QAQ
----------------------------------------------------
T1
题意:huffman树的过程,只不过不贪心取,随机取,问最后的期望结果
好像很多人做对的样子。。
发现其实结果和每个数是什么是没有关系的,而且每个数对答案的期望贡献是相同的
于是我们可以求出每个数对答案的期望贡献次数,最后乘上它们的和就好啦
于是就很简单了,f[i]表示i个数,最后每个数对答案的贡献,则f[i]=f[i-1]+2/i
求个逆元就好啦
-----------------------------------------------------
T2
woc发现我的想法是正确的。。
在完善一下就好了QAQ
然而写了那么长的代码被我删掉了QAQ
虽然复杂度不太正确的样子,卡卡常就过去了么
题意:
操作是将l到r的区间修改为l到r的最大值
给出一个长度为𝑛的初始数组𝑎,以及𝑚个操作,需要维护:
1∙ 求依次进行编号为[𝐿,𝑅]的这一段操作后𝑎𝑘的值。
2∙ 将𝑎𝑢的值修改为𝑣,即修改初始数组,这次修改会影响它之后的所有
询问。
做法:
考场上想的是找出包含k的所有区间,写了个分块瞎搞了搞。。
然后开心的过了样例,下载了大样例,然后就哭瞎了
发现会有虽然不包含k,但是在包含k区间的操作的前面并和其有交的区间可以影响k的值。。
一脸懵逼,以暴力收尾。。
其实就是这样的一个模型,从R开始包含k的区间开始往上撞,求并,上面的绿色线段都在并里,且它们都不包含k
按照考试上的思路分块可以n^1.5*logn,需要卡常
whx讲了标算,一个log的方法
预处理,即左右边下一个能扩展的线段,然后求左右端点时倍增一下。成功的用一个log解决问题!(不愧是稳爷爷啊
-----------------------------------------------------
T3:
其实没怎么听懂
只听懂了优化
将一个k叉树,用左儿子右兄弟的方法,减小规模,因为求的是k优解嘛