Processing math: 100%

02 2018 档案

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

点击右上角即可分享
微信分享提示