摘要: 大水题。 建立100个二维树状数组,总复杂度就是O(qlognlogm). # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <qu 阅读全文
posted @ 2017-03-17 21:04 free-loop 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 这题的时间复杂度真玄学。。。 O(m*n^2)。1e8也能过啊。。。 首先题目保证m<=1e6. 这启发我们枚举或者二分答案? 但是答案不满足单调性,考虑从小到大枚举m。 对于每一个m,枚举两个野人在有生之年能否住在一起。可以推出一个同余方程,用扩欧可以求出最小整数解x,或者没有解。 如果x<=li 阅读全文
posted @ 2017-03-17 20:27 free-loop 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 我们可以用n次BFS预处理出 to[][]数组,to[i][j]表示聪聪从i点到j点第一步会走哪个点。 那么对于聪聪在i点,可可在j点,聪聪先走,定义dp[i][j]表示步数期望。 那么显然有dp[i][j]=(sigma(dp[p][w])+dp[p][j])/(dee[j]+1)+1. 其中p表 阅读全文
posted @ 2017-03-17 18:45 free-loop 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 很简洁的题目。求出x^2%n=1的所有x<=n的值。 n<=2e9. 直接枚举x一定是超时的。 看看能不能化成有性质的式子。 有 (x+1)(x-1)%n==0,设n=a*b,那么一定有x+1=k1a,x-1=k2b. 不妨设a<=b.那么就能O(sqrt(n))枚举a。 然后再枚举x,验证x是否满 阅读全文
posted @ 2017-03-17 17:34 free-loop 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 题目中矩形的尺寸太大,导致墓地的数目太多,如果我们统计每一个墓地的虔诚度,超时是一定的。 而常青树的数目<=1e5.这启发我们从树的方向去思考。 考虑一行没有树的情况,显然这一行的墓地的虔诚度之和为0.也就是说我们可需要考虑常青树在的行就行了。 对于在同一行的每两颗长青树之间,墓地的虔诚度之和为C( 阅读全文
posted @ 2017-03-17 16:14 free-loop 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 无法直接构造最大流来解决这个问题,因为题目要求每首舞曲都需要n对男女进行跳舞。 答案又满足单调性,这启发我们二分答案,判断是否满流验证答案。 假设舞曲数目为x时满足条件,那么每个男生和女生都需要跳x次舞。 连边(s,男i,x), (女i,t,x)来进行限制。 同时要求每个男生最多可以和k个不喜欢的女 阅读全文
posted @ 2017-03-17 14:40 free-loop 阅读(129) 评论(0) 推荐(0) 编辑