随笔分类 - SRM596
摘要:逻辑分析题,先看cool的定义:1.1 对任意两个不同的数A和B,A&B > 01.2 对任意三个不同的数A、B和C,A&B&C = 0分析数的二进制位可以推出以下等价定义:2.1 任意一对数至少有一个二进制位(下同)都为12.2 考虑所有的数,任意一位上1的总数最多为2定义几个术语:位对若A和B在w位上相等且都为1则称AB在w位上拥有一个位对(w, A, B)双位在该位上1的总数为2单位 在该位上1的总数为1无效位在该位上1的总数为0定义2转换为下述表述:3.1 任意两个数都在某位上有一个位对3.2每位上最多存在一个位对现在新增一个集合M还要使S+M是cool的
阅读全文
摘要:开始以为是DP然后用了一个时间复杂度数量级为107的DP来做,结果case 35超时,后来发现就是一个逻辑分析题,就知道有贪心策略的,250分的题怎么可能是DP呢。分析首先考虑一个数的情况,任意一个数a的形成可以通过如下构造来表示:\(\begin{equation}a=((((0+n0)×2+n1)×2+n2)×2+...+nk−1)×2+nk=k∑i=0ni×2k−i(ni∈N)\end{equati
阅读全文
摘要:动态规划的题目 1 class ColorfulRoad: 2 def getMin(self, road): 3 a = [None] * len(road) 4 a[0] = 0 5 for i in range(0, len(road)-1): 6 if a[i] != None: 7 for j in range(i+1, len(road)): 8 if self.judgeValid(road[i], road[j]): 9 ...
阅读全文
摘要:一般编程题,如果用数组来处理,注意中间要忽略的城市 1 class FoxAndSightseeing: 2 def getMin(self, position): 3 minx = 999999999 4 for i in range(1, len(position)-1): 5 sumx = 0 6 for k in range(1, len(position)): 7 sumx += abs(position[k] - position[k-1]) 8 ...
阅读全文
摘要:数论题,注意以下性质:(1) 若 divisor|F(n) 则必存在整数 r 使得 n≡r2(mod divisor)(r∈N且n>r2)(2) 若n≡r2(mod divisor)(r∈N且n>r2) 则必有divisor|F(n)若 divisor 不是质数则性质不成立,因此原题转换为如下问题:求区间 [lo,hi] 内满足 \( n \equiv r^2 (mod \ divisor) (r
阅读全文