02 2018 档案

摘要:假设是序列问题,且$S<T$,可以贪心求解,通过维护下述信息进行区间合并。 对于区间$[l,r]$,维护的信息有: $v$:跳到了$\geq r$的位置后,可以花费$1$往右最多扩展多少。 $f[i]$:从$\leq l+i$开始跳到$\geq r$的位置的最少步数。 $g[i]$:从$\leq l 阅读全文
posted @ 2018-02-23 17:12 Claris 阅读(362) 评论(0) 推荐(0)
摘要:考虑容斥,枚举哪些不存在的边选中了,剩下的不管,则可以用组合数计算方案数。 时间复杂度$O(m2^m+nm)$。 阅读全文
posted @ 2018-02-22 23:12 Claris 阅读(272) 评论(0) 推荐(0)
摘要:$A$类数据:直接输出$B[l]$,$O(n+m)$。$B$类数据:ST表求区间最小值,$O(n\log n+m)$。$C$类数据:可持久线段树求区间$k$小值,$O((n+m)\log n)$。剩下的数据先用可持久线段树求出$a,b$的实际值,转化为矩形内$B$值的询问。$D$类数据:即求矩形$B 阅读全文
posted @ 2018-02-21 01:48 Claris 阅读(281) 评论(0) 推荐(0)
摘要:枚举每个人,计算他必定是诚实者的情况下至少有几个人说谎,若超过$t$则他肯定是说谎者。 对于至少有几个人说谎,区间信息可以合并: 每个区间维护最左最右两个人$l,r$以及$f[i][j]$表示$l$和$r$诚实说谎状态分别为$i,j$时他们之间至少几个人说谎。 利用前缀和、后缀和可以在$O(1)$时 阅读全文
posted @ 2018-02-18 02:22 Claris 阅读(293) 评论(0) 推荐(0)
摘要:设$f[i][j]$表示考虑前$i$个人,第$i$个人在前$i$个人中排名为$j$的方案数。 对于大小关系相同的一段,转移可以看成求$k$次前/后缀和,任意一项对另一项的贡献仅和其下标差值有关,FFT加速即可。 时间复杂度$O(mn\log n)$。 阅读全文
posted @ 2018-02-11 18:26 Claris 阅读(298) 评论(0) 推荐(0)