A组队
编号 号位1 2 3 4 5 |
暴力就完事,答案490:
teams=[(97,90,0,0,0),(92,85,96,0,0),(0,0,0,0,93),(0,0,0,80,86),(89,83,97,0,0), |
B年号字串
类似26进制,模拟即可,答案BYQ
cnt=1 |
C数列求值
斐波那契数列变形,答案4659
a=1 |
D数的分解
注意:要保证不重复,需要i<j<k
答案40785
def check(i): |
E迷宫
01010101001011001001010110010110100100001000101010 |
深搜即可
答案:
DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR
def check(x,y): |
F特别数的和
n=int(input()) |
G完全二叉树的权值
前i层完全二叉树有pow(2,i)-1个节点,所以将节点按层数加进一个数组,最后遍历一下数组即可
n=int(input()) |
H等差数列
思路:数列先排序,找到相邻两数差值的最大公因数就是公差了,需要注意公差为0时的特殊情况,即常数列
from math import gcd |
I后缀表达式
看这道题前,我们先来了解一下什么是后缀表达式:
- 我们日常生活中常用的是中缀表达式:1+1+2=4,除了中缀表达式之外还有前缀表达式和后缀表达式
- 前缀表达式就是把+-*/ 都放在前面 比如 ++1 1 2 = 4
- 后缀表达式就是把+-*/ 都放在后面 比如 1 1 2 ++ = 4
- 计算机在计算的时候比较喜欢后缀表达式,人类在计算的时候比较喜欢中缀表达式
- 计算机计算后缀表达式的方法是这样的:遇到数字时入栈,遇到+-*/时取出栈中的前两个数做运算结果再入栈,反复如此。
这道题有个很神奇的思路:减掉最小值,加上最大值,再加上中间所有数的绝对值,得到的结果就是答案最大值。
当有0个减号时:全部加起来即可
当有1个减号时:肯定选择减最小的那个数,剩下的加起来即可
当有2个减号时:用最小的减去最大的,再用一个减号减去他们的结果,就相当于最大值减最小值,剩下的加起来
当有3个减号时:用最小的减去最大的和第二大的,再用一个减号减去他们的结果,就相当于最大值减最小值,剩下的加起来
……
当有n个减号时:总之留一个减号用来减计算结果,剩下的减号全都用最小的值减较大的值,最后就相当于减掉最小值,加上最大值,再加上中间所有数的绝对值。
代码如下:
from math import * |