- 摘果子-幂。给定两个数组a,b,判断b中的数字能否由a中两个不同的数进行幂运算得到。
思路:自写pow函数;利用哈希字典。 - 求面积。求在平面直角坐标系下y=x**k,x+y=b(k>0,b>0)与x轴在第一象限围成的图形面积。
思路:利用二分法求出两个函数在第一象限的交点;定积分求出第一部分面积+三角形面积。 - 数星星。给出一串由S T A R构成的字符串,求可以拼凑出多少个STAR,限制取出的S T A R 四个字母在原串中不能相邻。
def star(n, s): dp = [[0 for i in range(4)] for i in range(n + 1)] for i in range(n): if i > 0: dp[i + 1][0] = dp[i][0] dp[i + 1][1] = dp[i][1] dp[i + 1][2] = dp[i][2] dp[i + 1][3] = dp[i][3] if s[i] == 'S': dp[i + 1][0] += 1 if s[i] == 'T' and i > 0: dp[i + 1][1] += dp[i - 1][0] if s[i] == 'A' and i > 0: dp[i + 1][2] += dp[i - 1][1] if s[i] == 'R' and i > 0: dp[i + 1][3] += dp[i - 1][2] return dp[n][3] if __name__ == "__main__": n = int(input()) s = input() print(star(n, s)) #输入: #8 #SSTTAARR #输出:5
- 跳棋。对于给定的n*m的格子,有红色和蓝色两种地毯,红色只能跳蓝色,蓝色只能跳红色,且只能走“日”,给定初始坐标后,计算出一共可以到达多少块地毯。
不会。思路:dfs、bfs。 - 概率题。小A在玩一个网络游戏。这个游戏有个抽装备环节。装备池总共有 n + m 件装备,分别为 n 件普通装备和 m 件 ssr 装备。抽一次装备的费用按你抽中的装备决定。抽中每一件装备的概率都为1/( n + m )。如果你抽中了 ssr 装备。这次的抽装备费用为2金币,否则这次的费用为1金币。如果你抽中了 ssr 装备,得到奖励,并目装备不会放回。如果你抽中了普通装备。得到奖励,但是这件装备会放回装备池。现在小 A 希望抽中所有的 ssr 装备,请你计算一下:需要花费金币的期望值。
输入描述:
输入一行: n , m (1<= n , m <=10)
输出描述:
抽中所有的 ssr 装备,需要花费全币的胡望值输出保留2位有效小数。def square(n, m): res = 0 for i in range(1,m+1): res += 1 / i ans = 2 * m + n * res return ans if __name__ == "__main__": n, m = list(map(int, input().split())) print('%.2f'%square(n, m)) #输入: #2 1 #输出:4.00