文章目录
CSDN周赛25题解
1、分层遍历二叉树
2、查找整数
3、小Q整数分割
4、水池注水
1、题目名称:分层遍历二叉树
给定一棵二叉树,节点定义如下: structNode { Node *pLeft; Node *pRight; int data; }; 要求按分层遍历该二叉树,
即从上到下按层次访问该二叉树(每一层将单独输出一行),每一层要求访问的顺序为从左到右,并将节点依次编号。
s = input()
nums = []
lin = 0
a = ''
for i in s:
if '0' <= i <= '9':
a += i
else:
if a:
if len(nums) <= lin:nums.append([])
nums[lin].append(int(a))
a = ''
if i == '(':lin += 1
elif i == ')':lin -= 1
for i in nums:
print(*i)
2、题目名称:查找整数
给定一个非降序的整数数组,数组中包含重复数字(重复数字很多) ,给定任意整数,对数组进行二分查找,返回数组正确的位置,给出函数实现。 a. 连续相同的数字,返回最后一个匹配的位置 b. 如果数字不存在返回 -1。
n,t = map(int,input().split())
a = list(map(int,input().split()))
import bisect
if t not in a:print('-1')
else:print(bisect.bisect_right(a,t)-1)
3、题目名称:小Q整数分割
小Q决定把一个整数n,分割为k个整数。 每个整数必须大于等于1。 小Q有多少方案。
n,k = map(int,input().split())
from math import factorial
if n < k:print(0)
elif n == k:print(1)
else:print((factorial(n)%(10**9+7))//(factorial(k)%(10**9+7))*(factorial(n-k)%(10**9+7))%(10**9+7))
4、题目名称:水池注水
给定nn水池。 向nn水池中注水。 每行每列只能注水一个方格。 如果一个方格的四周有两个方格已经被水覆盖,则该方
格也会被水覆盖。 小Q想知道自己有多少种方案可以使得自己的水池被完全覆盖。
是一个偏数学的题目,赛场上未做出