上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 38 下一页
摘要: 枚举剩下的分数个数$k$,设最高的$k$个分数和的分子分母分别为$U$和$D$。 那么在选了的里面找到$A=\min(Dt[x]-Up[x])$,没选的里面找到$B=\max(Dt[x]-Up[x])$。 如果$A<B$,则可以更大。 对于$A,B$的计算,可以利用决策单调性分治求解。 时间复杂度$ 阅读全文
posted @ 2016-08-19 23:36 Claris 阅读(591) 评论(0) 推荐(0)
摘要: 将所有点按横坐标排序,那么最长上升子序列和最长下降子序列里必有一个长度不小于$\sqrt{n}$。 因为如果最长上升子序列很短,那么根据Dilworth定理,它的反链长度与它成反比。 因此可以将$n$个点划分为不超过$\sqrt{n}$条链或者反链,每一个部分里都相当于只有一维坐标。 对于每一个部分 阅读全文
posted @ 2016-08-19 19:11 Claris 阅读(371) 评论(0) 推荐(0)
摘要: 根据公式$x^k=\sum_{i=1}^k Stirling2(k,i)i!C(x,i)$, 设$f[i][j][k]$表示从$(i,j)$出发的所有路径的$C(路径长度,k)$的和, 根据$C(n,m)=C(n-1,m-1)+C(n-1,m)$,则有: $f[now][k]=\sum(f[nxt] 阅读全文
posted @ 2016-08-14 00:22 Claris 阅读(335) 评论(0) 推荐(0)
摘要: 首先拓扑排序,并将障碍点按拓扑序平均分成两半。 那么一条$0$到$1$的路径一定是形如: $0$->前一半点->后一半点->第一个后一半障碍点->后一半点->$1$。 对于两边分别暴力枚举所有情况,设$f[i]$表示$0$出发到达$i$,且到$i$之前不经过任意一个后一半障碍点到达$i$的路径数;$ 阅读全文
posted @ 2016-08-13 19:22 Claris 阅读(470) 评论(0) 推荐(0)
摘要: 显然求出每个点到所有关键点的最短路和次短路即可,答案就是每个关键点的次短路。 设$f[i][j][0]$表示左手在$i$,右手在$j$的解,$f[i][j][1]$表示左手在$i$,右手在$j$,且左手已经动了右手还没开始动的解,然后BFS即可。 时间复杂度$O(n(n+m))$。 阅读全文
posted @ 2016-08-13 03:41 Claris 阅读(351) 评论(0) 推荐(0)
摘要: 首先旋转坐标系,假设$(x,y)$被$(X,Y)$遮挡等价于$X\leq x$且$Y\leq y$。 对于每种坐标系建立两棵线段树: 第一棵按$x$维护已经加入的点的$y$的最小值; 第二棵按$x$维护看得见的点的$y$的最大值。 对于一块三角板,通过第一棵线段树查询即可知道是否可以放下,然后在第二 阅读全文
posted @ 2016-08-13 02:43 Claris 阅读(217) 评论(0) 推荐(0)
摘要: 答案由$3$部分构成: $1$.抛物线的极值。 $2$.询问区间的左端点在抛物线上的值。 $3$.询问区间的右端点在抛物线上的值。 对于$1$,就是某个矩形范围内最大值查询,使用KD-Tree可以在$O(\sqrt{n})$的时间内完成询问。 对于$2$和$3$,对编号建线段树,每个节点维护该区间内 阅读全文
posted @ 2016-08-12 22:54 Claris 阅读(670) 评论(0) 推荐(0)
摘要: 考虑以块大小为$32$将序列分块,设$s[i][j]$表示前$i$块和前$j$块矩形相交的对数,$f[i][j]$表示矩形$i$和前$j$块的相交个数。 如果矩形$i$和$j$相交,那么有: $x_1[j] < x_2[i]$ $x_2[j] > x_1[i]$ $y_1[j] < y_2[i]$ 阅读全文
posted @ 2016-08-12 02:19 Claris 阅读(341) 评论(0) 推荐(0)
摘要: 每种颜色的点集肯定是独立集,因此可以通过$O(2^n)$枚举每个集合判断出每个集合是否只需要一种颜色即可染色。 设$f[i][S]$表示$i$种颜色覆盖$S$这个集合的方案数,假定两个集合可以相交,那么最优解一定不相交,所以有$f[i][S]=\sum_{u\ or\ v=S}f[1][u]\tim 阅读全文
posted @ 2016-08-11 22:24 Claris 阅读(436) 评论(0) 推荐(0)
摘要: 首先通过随机增量法求出最小覆盖圆,作为答案的上界。 然后二分答案,检验的时候枚举每个点作为原点,求出其他每个点被包括在圆内的角度区间,然后扫描线即可。 时间复杂度$O(Tn^2\log n)$。 阅读全文
posted @ 2016-08-10 21:11 Claris 阅读(342) 评论(0) 推荐(0)
摘要: 设每个点的权值为和它相连的所有边的权值的异或和,那么等价于选若干个点,使得点权异或和最大,这显然只需要维护一组线性基,然后从高位到低位贪心选取即可。 对于本题,因为有修改操作,所以考虑按时间分治,并用bitset加速,时间复杂度$O(\frac{m\log mL^2}{64})$。 针对插入操作,可 阅读全文
posted @ 2016-08-03 22:19 Claris 阅读(686) 评论(0) 推荐(0)
摘要: 设$f_i$表示以$i$结尾的square个数,$g_i$表示以$i$开头的square个数,则$ans=\sum_{i=1}^{n-1} f_ig_{i+1}$。 枚举square中长度的一半$L$,每$L$步取一个关键点,那么每个该长度的square的肯定恰好经过两个相邻的关键点,且位置差距为$ 阅读全文
posted @ 2016-08-03 01:21 Claris 阅读(1928) 评论(0) 推荐(0)
摘要: 首先离散化,即相邻关键点之间的部分可以压成一段。 注意到区间互不包含,因此排序后每个位置的清理影响到的是一段连续区间的清理工的工作长度。 这显然可以用线段树维护,支持区间减去一个数,单点加上$inf$,以及查询全局最小值。 对于每次清理,暴力枚举区间内所有没清理过的段,在线段树中区间修改,用并查集进 阅读全文
posted @ 2016-08-02 00:47 Claris 阅读(414) 评论(0) 推荐(0)
摘要: 显然只有横向和纵向的两个炮塔才有可能冲突。 考虑最小割,将每个炮塔所有能攻击到的位置建点,相邻之间连无穷的边,表示前缀和关系,即选了一个点,就必须要选所有比它近的点。 属于横向炮塔的点向$S$连边,容量为前缀最大值的差值;属于纵向炮塔的点向$T$连边,容量为前缀最大值的差值。 对于一个交点,则在两个 阅读全文
posted @ 2016-07-31 19:49 Claris 阅读(721) 评论(0) 推荐(0)
摘要: 显然在最优解中,添加的边都是从$1$出发的。 这个图是一个环套树的结构,对于树的部分,显然叶子节点必须加边。 因此可以自底向上确定树中哪些节点需要加边,同时得到$1$到环上每个点的距离。 对于每个环,首先求出哪些点距离超过了$k$,并预处理出每个点之后最近的未满足的点的位置。 然后枚举起点,显然起点 阅读全文
posted @ 2016-07-30 03:09 Claris 阅读(581) 评论(0) 推荐(1)
摘要: A. Box Game 注意到局面总数不超过$50000$,而且每次操作都会改变石子的奇偶性,因此按奇偶可以将状态建成二分图,然后求出最大匹配。 如果状态数是偶数,那么先手必胜,策略就是每次走匹配边,那么对手不能通过匹配边走回来,因此所有匹配边你都能走掉。 如果状态数是奇数,那么如果此时有奇数个石子 阅读全文
posted @ 2016-07-24 20:42 Claris 阅读(368) 评论(0) 推荐(0)
摘要: 设$f[x][i][j]$表示以$x$为根的子树,与$x$连通部分有$i$个黑点,$j$个白点,不联通部分都是均衡的最小代价。若$i>1$,则视作$1$;若$j>2$,则视作$2$。 然后进行树形DP即可,转移的时候如果不要那棵子树,那么那棵子树的状态必须满足$!i||j<2$。 时间复杂度$O(n 阅读全文
posted @ 2016-07-24 02:20 Claris 阅读(646) 评论(0) 推荐(0)
摘要: 注意到$b$不变,考虑用归并树来维护这个$b$序列,对于每个节点有序地维护$b$,同时在归并的时候预处理出每个元素在左右儿子里的排名。 在归并树上额外维护区间内$a\geq b$的个数以及赋值标记。 那么在区间赋值的时候,只需要在根节点的$b$数组中做一个二分,然后往下通过预处理的名次数组转移即可, 阅读全文
posted @ 2016-07-22 02:00 Claris 阅读(635) 评论(0) 推荐(0)
摘要: 考虑DP,设$f[x]$表示最后一个是$x$时的最优解,则$f[x]=\max(f[y]+w[x]\ opt\ w[y])$,其中$y$是$x$的祖先。 注意到$w[i]<2^{16}$,那么将数字划分成前$8$位和后$8$位,额外维护一个数组$g[a][b]$表示某个$w[y]$的前$8$位为$a 阅读全文
posted @ 2016-07-22 01:56 Claris 阅读(802) 评论(0) 推荐(0)
摘要: 枚举每个点到$1$的距离,若$>k$则视为$k+1$,那么有$d_1=1,d_n=k$。 对于$i$,如果$1\leq d_i\leq k$,则一定要存在一条边长度为$d_i-d_j$,且其他边长度都要$\geq d_i-d_j$。 如果$d_i>k$,那么对于每条边都满足长度$>k-d_j$。 枚 阅读全文
posted @ 2016-07-21 02:13 Claris 阅读(310) 评论(0) 推荐(0)
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 38 下一页