摘要: 莫队,cnt数组记录每个数的个数,bitset b1[i]记录数i是否出现过,b2[i]记录数M-i是否出现过。 减法:((b1>>x)&b1).any()。 加法:(((b2>>(M-x))&b1).any()。 乘法:若存在一定有一个数<=sqrt(1e5),枚举即可。 复杂度:$O(n\sqr 阅读全文
posted @ 2018-12-15 13:16 HocRiser 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 首先冷静一下看清问题的本质,是将整个数列分成两个递增子序列。 那么由Dilworth定理得,无解当且仅当数列的最长下降子序列的长度>2,先特判掉。 然后就有一些比较厉害的做法:http://www.cnblogs.com/Gloid/p/10025835.html 一种比较直观的做法是,将每对逆序对 阅读全文
posted @ 2018-12-15 12:19 HocRiser 阅读(213) 评论(0) 推荐(1) 编辑
摘要: 第一种方法是决策单调性优化DP。 决策单调性是指,设i>j,若在某个位置x(x>i)上,决策i比决策j优,那么在x以后的位置上i都一定比j优。 根号函数是一个典型的具有决策单调性的函数,由于根号函数斜率递减,所以i决策的贡献的增长速度必定比j快。 于是使用基础的决策单调性优化即可。 注意两个问题,一 阅读全文
posted @ 2018-12-15 11:45 HocRiser 阅读(267) 评论(0) 推荐(0) 编辑