随笔分类 - 做题总结
摘要:[ABC372D] Buildings 思路 正着做不方便,倒着用单调栈做一遍就行了。 代码 #include<iostream> using namespace std; inline int read(){register int x = 0, f = 1;register char c = g
        阅读全文
                
摘要:Secret Santa 思路 这是一个需要深思熟虑的贪心,总之还算有点复杂。 首先,如果一个数不在它自己数值的下标上,就可以填进去,将剩下的还未填的数记录下来,此时情况如下(样例1,第一组): 当前:2 1 _ 剩余:3 然后将剩余的数的那个数组反过来,即从大到小排序,填满空位,这样可能会有冲突,
        阅读全文
                
摘要:Close Vertices 思路 很明显,这是一道点分治题目,但有两个限制条件,考虑将两个条件排序起来,双指针找第一个条件,树状数组维护第二个条件,但是同一个子树内不能重复统计,所以将答案减去每个子树内的答案。 代码 #include<iostream> #include<algorithm> #
        阅读全文
                
摘要:P1020 [NOIP1999 提高组] 导弹拦截 思路 设 \(dp_i\) 表示前 \(i\) 个数,最长不降子序列的长度,我们知道枚举求法的时间复杂度为 \(O(n^2)\),这是不能接受的,所以考虑二分。 设 \(f_i\) 表示所有最长不降子序列长度为 \(i\)中,它的结尾中最大的数。 
        阅读全文
                
摘要:P2146 [NOI2015] 软件包管理器 思路分析 树链剖分板子,每次安装时,将 \(1\) 到 \(x\) 的链变为 \(1\),卸载时,将 \(x\) 的子树变为 \(0\)。 代码 #include<iostream> using namespace std; inline int rea
        阅读全文
                
                    
                
浙公网安备 33010602011771号