摘要:
大水题。 建立100个二维树状数组,总复杂度就是O(qlognlogm). # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream> # include <vector> # include <qu 阅读全文
摘要:
这题的时间复杂度真玄学。。。 O(m*n^2)。1e8也能过啊。。。 首先题目保证m<=1e6. 这启发我们枚举或者二分答案? 但是答案不满足单调性,考虑从小到大枚举m。 对于每一个m,枚举两个野人在有生之年能否住在一起。可以推出一个同余方程,用扩欧可以求出最小整数解x,或者没有解。 如果x<=li 阅读全文
摘要:
我们可以用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表 阅读全文
摘要:
很简洁的题目。求出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是否满 阅读全文
摘要:
题目中矩形的尺寸太大,导致墓地的数目太多,如果我们统计每一个墓地的虔诚度,超时是一定的。 而常青树的数目<=1e5.这启发我们从树的方向去思考。 考虑一行没有树的情况,显然这一行的墓地的虔诚度之和为0.也就是说我们可需要考虑常青树在的行就行了。 对于在同一行的每两颗长青树之间,墓地的虔诚度之和为C( 阅读全文
摘要:
无法直接构造最大流来解决这个问题,因为题目要求每首舞曲都需要n对男女进行跳舞。 答案又满足单调性,这启发我们二分答案,判断是否满流验证答案。 假设舞曲数目为x时满足条件,那么每个男生和女生都需要跳x次舞。 连边(s,男i,x), (女i,t,x)来进行限制。 同时要求每个男生最多可以和k个不喜欢的女 阅读全文