有笔试哔哩哔哩算法的吗?
有笔试哔哩哔哩算法的吗?
第二题:
那个⑨是什么东西?为什么粘贴复制就完全错误了?只ac了17%。。。不知道还有没有其他问题
思路是迭代求dp(num, target, 2)
num = int(raw_input())
arr = [0] + map(int, raw_input().split())
target = int(raw_input())
def dp(num, target, count):
if count == 2:
if sum(arr[:num+1]) < target:
return []
if num <= 0:
return []
if target < 0:
return []
dp_list = dp(num-1, target-arr[num], 1)
[item.append(num) for item in dp_list]
return dp_list + dp(num-1, target, 2)
elif count == 1:
output = []
for index in range(1, num+1):
if arr[index] == target:
output.append([index])
return output
out = dp(num, target, 2)
out_list = []
for item in out:
out_list.append(sorted(item))
out_norm = sorted(out_list, key=lambda x:arr[x[0]])
if len(out)>0:
for item in out_norm:
print item[0], item[1]
else:
print('⑨\n') 第一题:
这算是图的遍历吗?
n = int(raw_input())
ai = int(raw_input())
m = int(raw_input())
dict_i = {}
for i in range(n):
dict_i[i] = []
for _ in range(m):
x, y = map(int, raw_input().split(','))
dict_i[x].append(y)
dict_i[y].append(x)
dict_i[ai].append(ai)
old_num = len(dict_i[ai])
view_flag = [False for _ in range(n)]
view_flag[ai] = True
def find(bi):
for index in dict_i[bi]:
if view_flag[index] == False:
view_flag[index] = True
if index not in dict_i[ai]:
dict_i[ai].append(index)
find(index)
for index in dict_i[ai]:
if view_flag[index] == False:
view_flag[index] = True
if index not in dict_i[ai]:
dict_i[ai].append(index)
find(index)
print(len(dict_i[ai])-old_num)
第三题:
arr = '' while arr != 'END': arr = raw_input() print(eval(arr))

查看4道真题和解析