看了一圈感觉就这题比较可做,那就先写这个,但是还是没啥头绪。
首先看咋写,这题的暴力肯定是直接从第 \(n\) 层开始反推就行的,但是复杂度好像很劣的样子,这肯定不行
考虑二分答案,我们二分塔顶的值,如果比这个点大我们就设为 \(1\),如果比这个点小我们就设为 \(0\)
我们发现如果有两个相同的值挨在一起,那么它就会一直一直往上走
如果完全没任何相邻的那就一直是 \(0\),这个明显比较神秘
复杂度 \(O(n \log n)\) 完全能过
代码写的挺神秘的
注意到我写完的代码有唐诗错误,for_(i,1,n) a[i]=read();
处应该写 for_(i,1,2*n-1)
这题似乎很优的样子,话说 JOI 是日本的 NOI 吗
考虑每次修改实际上对于区间内部和区间的非相邻格子没有影响,只对其相邻的两个格子有影响
因此我们可以先对于最开始的区间进行暴力计算,然后对于修改使用线段树维护
但是请看这条
没错,这题不需要线段树,直接暴力维护两点即可
那就解决了,我服了白打了个线段树
这题咋连个输入格式和输出格式都没有,急了,这我咋写啊,LOJ救我
发现这是一个图论的题,看起来挺优秀的
标签:暴力,NOIp,线段,这题,长训营,JOI,纪要 From: https://www.cnblogs.com/Vsinger-LuoTianYi/p/18432020