zoukankan      html  css  js  c++  java
  • 全国高校绿色计算大赛 预赛第二阶段(Python)

    第1关统计分数的麻烦

    class Task:
        def get_lost_scores(self, scores):
            s = ""
            index = [1 for i in range(10001)]
            for i in scores:
                index[i] = 0
            for i in range(1,10001):
                if(index[i] == 1):
                    s+=str(i)
            ans = int(s) % 11
            return ans
    
    
    
    
    if __name__ == '__main__':
        task = Task
        score = [2, 3, 5, 6, 7, 8, 9]
        print(task.get_lost_scores(task, score))
    
    

    第2关最强战队

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    class BestTeam:
        def get_best_team(self, numbers, abilities, selectedNum, distance):
            n = numbers
            k = selectedNum
            d = distance
            res = 0
            maxval = [([0] * 100) for i in range(50)]
            minval = [([0] * 100) for i in range(50)]
            for i in range(n):
                minval[i][0] = abilities[i]
                maxval[i][0] = abilities[i]
            for i in range(n):
                for j in range(1, k):
                    # for kk in range(i - 1, 0, -1):
                    kk = i - 1
                    while (kk >= max(i - d, 0)):
                        # print(kk)
                        maxval[i][j] = max(maxval[i][j],
                                           max(maxval[kk][j - 1] * abilities[i], minval[kk][j - 1] * abilities[i]));
                        minval[i][j] = min(minval[i][j],
                                           min(maxval[kk][j - 1] * abilities[i], minval[kk][j - 1] * abilities[i]));
                        kk -= 1
                res = max(res, max(maxval[i][k - 1], minval[i][k - 1]));
            return res
    
    
    if __name__ == '__main__':
        bestTeam = BestTeam
        numbers = 10
        abilities = [12,11,8,9,15,22,7,9,12,10]
        selectedNum = 3
        distance = 5
        print(bestTeam.get_best_team(bestTeam, numbers, abilities, selectedNum, distance))
    
    

    第3关完美的团建活动

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    class TeamBuilding:
    
        def get_minium_steps(self, stones):
            xx = 0
            yy = 0
            ans = 0
            n = len(stones)
            points = []
            for i in range(n):
                for j in range(n):
                    if stones[i][j] > 1:
                        points.append((stones[i][j], i, j))
            points = sorted(points, key=lambda points: points[0]);
            for nn, x, y in points:
                mp = [([0] * n) for p in range(n)]
    
                ind = self.bfs(self, xx, yy, x, y, stones, mp, 0)
                # print(ind)
                if ind != -1:
                    ans += ind
                else:
                    return -1
                xx = x
                yy = y
            return ans
    
        def bfs(self, xx, yy, x, y, stones, mp, step):
            if(xx == x and yy == y): return 0
            mp[xx][yy] = 1
            to = [[0, 1], [1, 0], [-1, 0], [0, -1]]
            import queue
            q = queue.Queue()
            q.put((xx, yy, step))
            while not q.empty():
                tx, ty, stepp = q.get()
                for i in range(4):
                    tox = tx + to[i][0]
                    toy = ty + to[i][1]
                    if self.judge(self, tox, toy, stones) and mp[tox][toy] != 1:
                        if tox == x and toy == y:
                            return stepp + 1
                        q.put((tox, toy, stepp + 1))
                        mp[tox][toy] = 1
            return -1
    
        def judge(self, x, y, stones):
            l = len(stones)
            w = len(stones[0])
            if x < 0 or x >= l or y < 0 or y >= w:
                return False
            if stones[x][y] == 0:
                return False
            else:
                return True
    
    
    if __name__ == '__main__':
        t = TeamBuilding
        stones = [[12,34,5,7,8,0],
        [1,0,8,9,12,0],
        [13,0,0,0,11,24],
        [23,32,17,0,0,10],
        [1,2,3,0,0,6],
        [4,8,12,0,0,19]]
    
    
        # stones = [[2, 3, 4], [0, 0, 5], [8, 7, 6]]
        print(t.get_minium_steps(t, stones))
        # mp = [([0] * 3) for p in range(3)]
        # print(t.bfs(t, 0, 0, 2, 0, stones,mp, 0))
    
    
  • 相关阅读:
    机器学习项目流程
    机器学习之数据归一化问题
    python三数之和
    从不订购的客户
    case when then的用法-leetcode交换工资
    .NET Core Api 集成 swagger
    .NET CORE 2.1 导出excel文件的两种方法
    Dapper的基本使用
    (转)深入研究MiniMVC之后续篇
    (转)深入研究 蒋金楠(Artech)老师的 MiniMvc(迷你 MVC),看看 MVC 内部到底是如何运行的
  • 原文地址:https://www.cnblogs.com/somliy/p/9868998.html
Copyright © 2011-2022 走看看