摘要:        
一般的编程题,注意计算份额的时候使用 int( 100 * x / sum ) 1 class Bonuses: 2 def getDivision(self, points): 3 pointSum = 0 4 for x in points: 5 pointSum += x 6 7 bounus = [] 8 bounusSum = 0 9 for x in points:10 bou = int(100 * x / pointSum)11 ...    阅读全文
        
            posted @ 2013-10-28 23:33
valaxy
阅读(149)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
这是一道很有意思的图论题,分析本问题之前必须先理解一笔画问题的原理,不难扩展出以下定理:若一个连通无向图的奇顶点个数为n(1) 当n为0时,图可以一笔画(且可以构造一个回路)(2) 其他情况,图可以n/2笔画(注意n一定为偶数)对于多联通分量的无向图,每个联通分量单独计算k笔画的情况,最后累加即可对于本题,将线段看成图的边,端点和交点看成图的顶点,画n遍转换为每条边重复出现至n次,而:笔抬起的次数=笔画数-1,这样题目就转化为下面这样的问题:给定一个图,求最少可以几笔画完,每条边不能重复也不能遗漏模型建好了,但是在编程计算的过程中还有以下难点:1. 如何处理互有覆盖(overlap)的线段?题    阅读全文
        
            posted @ 2013-10-28 02:00
valaxy
阅读(257)
评论(0)
推荐(0)
        
        
            
        
        
摘要:        
排列组合的问题,对于不同的情况分别考虑即可,引入定义:P(n,r)n个元素集合的r-排列的个数C(n,r)n个元素集合的r-组合的个数M(k,r)k种元素多重集的r-组合个数, M(k,r) = C(r+k-1,r)共有4种情况sortedunique总数truetrueC(choices,blanks)truefalseM(choices,blanks)falsetrueP(choices,blanks)falsefalsechoices^blanks(乘方)剩下的就是排序等基本的程序操作了,注意精度问题 1 class Lottery: 2 def sortByOdds(self,...    阅读全文
        
            posted @ 2013-10-28 00:31
valaxy
阅读(198)
评论(0)
推荐(0)
        
        
浙公网安备 33010602011771号