摘要:
第一题 题意:给定多组数据P,每次询问P进制下,有多少数字B满足条件:只要数位之和是B的倍数,该数字就是B的倍数。 题解:此题是参考10进制下3和9倍数的特殊性质。 对于10进制,ab=10*a+b=9*a+(a+b),所以9的约数都有此性质。 对于P进制,ab=p*a+b=(p-1)a+(a+b) 阅读全文
摘要:
【题意】求DAG上最多的点使得互不可达。 【算法】floyd+最大匹配 【题解】 链是DAG上的一个点集,集合内的点相互单向可达。 反链是DAG上的一个点集,集合内的点相互不可达。 题目显然是求最长反链,转化为最小链覆盖。 最小链覆盖只要求可达,最小路径覆盖却要求相连。 所以floyd传递闭包(用f 阅读全文
摘要:
【关键字】偏序,数点,树状数组,线段树,扫描线。 因为涉及多种算法,所以整合到一起。 【扫描线】 二维数点,偏序 ★数点问题 ★关于偏序问题的一些总结 扫描线是一维离线的做法的统称,常用于解决k维偏序问题。 离线:将其中一维的询问排序后按顺序处理,从而实现按时间顺序处理的过程中可以O(1)统计空间上 阅读全文
摘要:
【算法】DP+线段树求区间max(二维偏序) 【题解】 状态转移方程:f[i]=max(f[j]+v[i]),x[j]<x[i]&&y[j]<y[i]。 观察j的条件限制显然是二维偏序求最大值,套路化地离散化后一维排序+一维线段树即可解决。 最后在f[i]中找max,所以不用恢复原序。 复杂度O(n 阅读全文