第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)的更多相关文章

  1. 全国高校绿色计算大赛 预赛第二阶段(Python)第1关:统计分数的麻烦

    挑战任务 “绿盟杯”比赛过后,赛事承办方的各位工作人员们就开始分头统计各个参赛队伍和同学的成绩了.赛事规模很大,有10000个队伍参加.经过工作人员认真负责的统计,本来已经统计好了这一万个队伍的分数和 ...

  2. 全国高校绿色计算大赛 预赛第一阶段(Python)

    第1关将字符串反转 #!/usr/bin/env python # -*- coding: utf-8 -*- class Task: def inversion(self, str): # **** ...

  3. 全国高校绿色计算大赛 预赛第三阶段(Python)(随机数)

    只提交了随机数 (真心不会 T-T ) import csv import random import pandas as pd import numpy as np # 预测结果文件:src/ste ...

  4. 全国高校绿色计算大赛 预赛第一阶段(C++)第4关:计算日期

    挑战任务 我们吃的食物都有保质期,现在食品监督管理局想要制作一个能准确计算食品过期日期的小程序,需要请你来进行设计. 例如:A食品在2018年1月1日生产,保质期是20天,则它的过期日期在2018年1 ...

  5. 全国高校绿色计算大赛 预赛第一阶段(C++)第2关:扔桃子

    挑战任务 动物园有一只小猴子喜欢吃桃子,不过它有个很独特的习惯,每次都把找到的桃子分成相等的两份,吃掉一份,留一份.如果不能等分,小猴子就会丢掉一个然后再分.第二天再继续这个过程,直到最后剩一个桃子了 ...

  6. 全国高校绿色计算大赛 预赛第一阶段(C++)第3关:旋转数组

    挑战任务 在计算机中,一张数字图像,可以被看做是一个矩阵或者说数组. 学过线性代数的同学对矩阵肯定不陌生.一般来说,图像是一个标准的矩形,有着宽度(width)和高度(height).而矩阵有着行(r ...

  7. 全国高校绿色计算大赛 预赛第一阶段(C++)第1关:将字符串反转

    挑战任务 将输入的字符串str进行反转. 编程要求 补全右侧vector<char> inversion(string str)函数实现字符串的反转并返回反转之后的字符串,其中函数参数st ...

  8. 绿色计算大赛决赛 第二阶段 消息传递(斯坦纳树 状压dp+spfa)

    传送门 Description 作为公司老板的你手下有N个员工,其中有M个特殊员工.现在,你有一个消息需要传递给你的特殊员工.因为你的公司业务非常紧张,所以你和员工之间以及员工之间传递消息会造成损失. ...

  9. 全国绿色计算大赛 模拟赛第二阶段 (Python)

    第1关气温预测 def dailyTemps(temp_list): result = [] for ca in range(0, len(temp_list)-1): for i in range( ...

随机推荐

  1. bzoj1933

    背包dp 一道很早以前就见过的dp dp[i][j][k]表示选到第i本书,第一层宽度为j,第二层宽度为k的最小高度,我们先把书按高度排序,然后转移就很方便了,因为高度降序,所以后选的书不影响之前选的 ...

  2. C#即时通讯系统设计与实现(一)

    最近学习了一下即时通讯,写了几天了,现在把遇到的问题和得到的心得在这里分享下. 即时通讯,C/S模式,在服务器上架设服务端,服务端是服务形式的,可以设置为开机自启动,客户端进行访问,可以安装在任意一台 ...

  3. IDEA Terminal

    如果IDEA在Terminal中无法使用环境变量,提示没有此命令的话,请查看在cmd中是否可以正常使用,然后,请右击IDEA以管理员方式进行运行,Terminal就可以正常使用了

  4. bzoj 1680: [Usaco2005 Mar]Yogurt factory【贪心】

    贪心,一边读入一边更新mn,用mn更新答案,mn每次加s #include<iostream> #include<cstdio> using namespace std; in ...

  5. 极简版OKEX比特币跨期对冲策略

    策略特点 只做正套,反套可以修改下,合约调换一下,即是反套. 添加两个 交易所对象,第一个季度,第二个当周. 精简了所有能简化的代码,优化空间还很大,教学策略谨慎实盘,跨期有一定风险. 欢迎反馈BUG ...

  6. 《windows核心编程系列》二十一谈谈基址重定位和模块绑定

    每个DLL和可执行文件都有一个首选基地址.它表示该模块被映射到进程地址空间时最佳的内存地址.在构建可执行文件时,默认情况下链接器会将它的首选基地址设为0x400000.对于DLL来说,链接器会将它的首 ...

  7. [UOJ388]配对树

    题解 贪心+线段树 首先如果我们知道了哪些点是关键点应该怎么搞 显然最小的匹配方案所有的边至多被经过一次 可以考虑每条边的贡献 因为我们要贡献尽量小 所以我们尽量让每条边经过的人尽量少 那么每条边被经 ...

  8. [Usaco2005 Nov]Asteroids

    Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape o ...

  9. _bzoj1016 [JSOI2008]最小生成树计数【生成树】

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1016 其实原题不叫这个的,而且原题是有一个背景故事的... 首先,容易得知,一个最小生成树不 ...

  10. 尺取法 POJ 3601 Subsequence

    题目传送门 /* 题意:求连续子序列的和不小于s的长度的最小值 尺取法:对数组保存一组下标(起点,终点),使用两端点得到答案 1. 记录前i项的总和,求[i, p)长度的最小值,用二分找到sum[p] ...