摘要: 一般编程题,稍加思考可以推出:(1) 从任意一个位置开始,如果能坐上所有位置,则从其他位置开始同样可以(2) 1的否命题也成立指定从 \((0, 0)\) 开始,编程模拟坐的过程即可判断Possible还是Impossible。【优化】\(m\)、\(n\) 互质的情况才可以坐上所有座位从 \((0, 0)\) 开始,到达 \((mn-1, mn-1)\) 时一共坐上了 \(mn\) 个座位,下一个座位又回到了 \((0, 0)\)若 \(m\)、\(n\) 互质则不存在整数 \(p\)、\(q\) 使得 \(pm=qn<mn\),所以:从 \((0, 0)\) 到 \((mn-1, m 阅读全文
posted @ 2013-11-24 07:14 valaxy 阅读(152) 评论(0) 推荐(0)
摘要: 逻辑分析题,先看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的 阅读全文
posted @ 2013-11-21 12:18 valaxy 阅读(266) 评论(0) 推荐(0)
摘要: 开始以为是DP然后用了一个时间复杂度数量级为\(10^7\)的DP来做,结果case 35超时,后来发现就是一个逻辑分析题,就知道有贪心策略的,250分的题怎么可能是DP呢。分析首先考虑一个数的情况,任意一个数a的形成可以通过如下构造来表示:\(\begin{equation}\begin{split}a&=((((0+n_0)\times2+n_1)\times2+n_2)\times2+...+n_{k-1})\times2+n_{k}\\&=\sum_{i=0}^{k} n_i\times2^{k-i} (n^i \in N) \end{split}\end{equati 阅读全文
posted @ 2013-11-19 10:11 valaxy 阅读(193) 评论(0) 推荐(0)
摘要: 动态规划的题目 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 ... 阅读全文
posted @ 2013-11-04 21:41 valaxy 阅读(131) 评论(0) 推荐(0)
摘要: 一般编程题,如果用数组来处理,注意中间要忽略的城市 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 ... 阅读全文
posted @ 2013-11-04 21:39 valaxy 阅读(117) 评论(0) 推荐(0)