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