Processing math: 1%

07 2016 档案

摘要:显然只有横向和纵向的两个炮塔才有可能冲突。 考虑最小割,将每个炮塔所有能攻击到的位置建点,相邻之间连无穷的边,表示前缀和关系,即选了一个点,就必须要选所有比它近的点。 属于横向炮塔的点向S连边,容量为前缀最大值的差值;属于纵向炮塔的点向T连边,容量为前缀最大值的差值。 对于一个交点,则在两个 阅读全文
posted @ 2016-07-31 19:49 Claris 阅读(715) 评论(0) 推荐(0) 编辑
摘要:显然在最优解中,添加的边都是从1出发的。 这个图是一个环套树的结构,对于树的部分,显然叶子节点必须加边。 因此可以自底向上确定树中哪些节点需要加边,同时得到1到环上每个点的距离。 对于每个环,首先求出哪些点距离超过了k,并预处理出每个点之后最近的未满足的点的位置。 然后枚举起点,显然起点 阅读全文
posted @ 2016-07-30 03:09 Claris 阅读(565) 评论(0) 推荐(1) 编辑
摘要:A. Box Game 注意到局面总数不超过50000,而且每次操作都会改变石子的奇偶性,因此按奇偶可以将状态建成二分图,然后求出最大匹配。 如果状态数是偶数,那么先手必胜,策略就是每次走匹配边,那么对手不能通过匹配边走回来,因此所有匹配边你都能走掉。 如果状态数是奇数,那么如果此时有奇数个石子 阅读全文
posted @ 2016-07-24 20:42 Claris 阅读(363) 评论(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 阅读(639) 评论(0) 推荐(0) 编辑
摘要:注意到b不变,考虑用归并树来维护这个b序列,对于每个节点有序地维护b,同时在归并的时候预处理出每个元素在左右儿子里的排名。 在归并树上额外维护区间内a\geq b的个数以及赋值标记。 那么在区间赋值的时候,只需要在根节点的b数组中做一个二分,然后往下通过预处理的名次数组转移即可, 阅读全文
posted @ 2016-07-22 02:00 Claris 阅读(612) 评论(0) 推荐(0) 编辑
摘要:考虑DP,设f[x]表示最后一个是x时的最优解,则f[x]=\max(f[y]+w[x]\ opt\ w[y]),其中yx的祖先。 注意到w[i]<2^{16},那么将数字划分成前8位和后8位,额外维护一个数组g[a][b]表示某个w[y]的前8位为$a 阅读全文
posted @ 2016-07-22 01:56 Claris 阅读(777) 评论(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 阅读(277) 评论(0) 推荐(0) 编辑
摘要:做n次递推求出n维Hash值即可,时间复杂度O(nk)阅读全文
posted @ 2016-07-20 18:04 Claris 阅读(304) 评论(0) 推荐(0) 编辑
摘要:考虑从(1,1)开始搜索移动方案,每次移动坐标的变化量都是2。 如果构成了环,那么环的周长肯定是偶数。 考虑这个环一定要被若干个骨牌覆盖,且还有一个位置是空的。 所以得出环的周长是奇数,矛盾,因此这个搜索不会搜出环,从而会得到一棵有根树。 那么答案就是所有关键点加上根节点形成的虚树的边总长$ 阅读全文
posted @ 2016-07-13 19:35 Claris 阅读(266) 评论(0) 推荐(0) 编辑
摘要:首先将朋友通过并查集缩起来,因为P\geq\frac{n(n-1)}{3},所以最后最多剩下46个点。 将自相矛盾的点删掉,就变成求最大权独立集问题,这等于求补图的最大团。 然后直接用Bron-Kerbosch算法枚举所有极大团,枚举的时候更新答案即可。 时间复杂度$O(3^\frac{n} 阅读全文
posted @ 2016-07-13 17:46 Claris 阅读(439) 评论(0) 推荐(0) 编辑
摘要:通过离线将操作建树,即可得到最终存在的操作。 然后逆着操作的顺序,倒着进行染色,对于每行维护一个并查集即可。 时间复杂度O(n(n+m))阅读全文
posted @ 2016-07-13 01:18 Claris 阅读(414) 评论(0) 推荐(1) 编辑
摘要:考虑折半搜索,每个数的系数只能是-1,0,1之中的一个,因此可以先通过O(3^\frac{n}{2})的搜索分别搜索出两边每个状态的和以及数字的选择情况。 然后将后一半的状态按照和排序,O(2^\frac{n}{2})枚举前一半的每一个选择情况的状态,将该选择情况下所有状态按和排序,然后通过 阅读全文
posted @ 2016-07-12 22:47 Claris 阅读(792) 评论(1) 推荐(0) 编辑
摘要:对于最终加入了括号的序列,对其求中缀表达式,建树。 可以发现n-1个运算符DFS序递增,且若一个-上方往左走了奇数次,则它就是+,否则就是-。 所以考虑DP,设f[i][j]表示考虑了前i个运算符,且最右边那条链长度为j的方案数。 时间复杂度O(n^2)阅读全文
posted @ 2016-07-12 21:25 Claris 阅读(282) 评论(0) 推荐(0) 编辑
摘要:将边集划分成若干极大不相交集合,满足每个简单环都可以由某些集合相加得到,则答案就是这些集合大小的\gcd的约数。 对于一个简单环,上面的边一定不是桥边,而和它在一个集合的边肯定不在其他简单环上。因此删除它之后,这些边就从非桥边变成了桥边。 枚举每条非桥边跑Tarjan计算答案即可。 时间复杂度$ 阅读全文
posted @ 2016-07-09 00:46 Claris 阅读(387) 评论(0) 推荐(0) 编辑
摘要:首先将速度相减,变成A在动而B不动,若速度为0则显然永远不会相交。 枚举A的每个点以及B的每条线段,计算这三个点共线的时刻。 将时刻排序,对于每个区间进行三分,用半平面交计算相交面积。 注意特判相交面积为0但是存在交点的情况。 时间复杂度O(n^4\log^2n)阅读全文
posted @ 2016-07-08 00:34 Claris 阅读(316) 评论(0) 推荐(0) 编辑
摘要:OPEN、CLOSE、RESIZE操作直接模拟即可。 对于MOVE,设f_i表示i号矩形的坐标,先无视边界通过DP求出每个矩形的坐标,再根据边界反向用第二次DP求出被移动矩形移动的真实距离,再正着进行一次DP即可。 时间复杂度O(n^3)阅读全文
posted @ 2016-07-07 23:09 Claris 阅读(339) 评论(0) 推荐(0) 编辑
摘要:枚举答案,考虑将速度区间等长地划分成若干个小区间。 设n_i表示i次敲击能得到的区间数,v_i表示i次敲击之后答案落在[v1,v_i]之间,则n_0=1,v_0=v2。 因为对于第i次敲击的时候,v_f=\frac{l}{s(i+1)}以上的速度是无法查询的,所以$[ 阅读全文
posted @ 2016-07-07 20:02 Claris 阅读(434) 评论(0) 推荐(0) 编辑
摘要:首先每个串都必须是S的子序列,否则无解。 按长度从小到大依次考虑每个串,如果它两边都不能放,那么无解。 如果能放一边,那么放进去,把待定的全部放入另一边。 如果两边都能放,那么看看能否待定,如果不能则把它和待定的分别放入两边。 时间复杂度O(nm)阅读全文
posted @ 2016-07-07 16:39 Claris 阅读(501) 评论(0) 推荐(0) 编辑
摘要:设f_i表示用i个辅助井时代价的最小值,x_i表示此时最后一个辅助井的位置。 则f_i是关于x_i的一个二次函数,其中系数跟f_{i-1}有关,递推求出极值点即可。 时间复杂度O(n)阅读全文
posted @ 2016-07-07 15:30 Claris 阅读(320) 评论(0) 推荐(0) 编辑
摘要:一种天气情况的概率只与4种天气的出现次数有关,故将相同概率的情况计数后放入堆中模拟哈夫曼树即可。 每次取出概率最小的,将它个数除以2,对于零头需要特判。 阅读全文
posted @ 2016-07-07 00:44 Claris 阅读(418) 评论(0) 推荐(0) 编辑
摘要:答案是O(\log n)级别的,故答案不超过6。 当答案是12345时,暴力枚举+压位检验即可,否则直接输出6。 时间复杂度O(n^5)阅读全文
posted @ 2016-07-07 00:08 Claris 阅读(251) 评论(0) 推荐(0) 编辑
摘要:1.B>0 二分答案,然后扫描线,线段树维护某个点作为左下角时的费用的最小值,支持区间加。 时间复杂度O(n\log^2n)。 2.B=0 枚举左边界,则最优右边界可以通过双指针求出。 用线段树维护左右边界之间最长的竖着的空的连续段的长度。 找到最大的连续段长度\geq左右边界距离的 阅读全文
posted @ 2016-07-06 23:41 Claris 阅读(338) 评论(0) 推荐(0) 编辑
摘要:首先只有质数个4且个数不超过10的限制条件才有用, 也就是长度不能为44,444,44444,4444444的倍数。 考虑容斥,计算长度必须是它们lcm的倍数,且没有连续44的方案数。 将DP转移方程用矩阵表示,则长度为L的方案数为G^{L-1}\times V阅读全文
posted @ 2016-07-06 20:57 Claris 阅读(582) 评论(0) 推荐(0) 编辑
摘要:设船最宽行列的交点为船的重心,那么只要预处理出重心在每个位置是否可行,以及在边界上走出边界所需的最小值之后,进行一遍BFS即可。 枚举每个点(x,y),求出它上下最近的障碍物的距离。考虑重心在第x行左右移动的时候,不能走的部分是一个区间,可以O(1)计算。 对于左右障碍物也同理,因此可以 阅读全文
posted @ 2016-07-02 02:41 Claris 阅读(815) 评论(2) 推荐(0) 编辑

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