1. 背包问题,18%,听说是python的问题,改成c++能acimport sysdef _min(data, N, c):n = len(data)data.sort(reverse=True)res = N# print(data)def dfs(idx, left):nonlocal resif res <= c:return# print(idx, left, res)if idx >= n or data[idx] > left:if left < res:res = leftreturndfs(idx + 1, left - data[idx])dfs(idx + 1, left)dfs(0, N)return resdef get(data, N, c):if sum(data) + c < N:return &quot;NO&quot;# nee = Nmin_res = _min(data, N, c)# print(min_res)if c >= min_res:return &quot;YES&quot;else:return &quot;NO&quot;line = sys.stdin.readline()# values = map(int, line.split())T = int(line)for i in range(T):line = sys.stdin.readline()values = [int(v) for v in line.split()]N, n, c = valuesif c >= N:print(&quot;YES&quot;)continueline = sys.stdin.readline()values = [int(v) for v in line.split()]data = valuesprint(get(data, N, c))# 18%2. 交换数组使得递增或递减,acdef swap(arr1, arr2, idx):arr1[idx], arr2[idx] = arr2[idx], arr1[idx]def _sort(arr1, arr2):_len = len(arr1)flag = Truefor i in range(_len):if i == 0:if arr1[i] > arr2[i]:swap(arr1, arr2, i)else:if arr1[i] > arr2[i] and arr2[i] >= arr1[i-1]:swap(arr1, arr2, i)if arr1[i] < arr1[i-1] and arr2[i] >= arr1[i-1]:swap(arr1, arr2, i)if arr1[i] < arr1[i-1]:flag = Falsebreakif flag:return Trueflag = Truefor i in range(_len):if i == 0:if arr1[i] > arr2[i]:swap(arr1, arr2, i)else:if arr1[i] > arr2[i] and arr1[i] <= arr2[i-1]:swap(arr1, arr2, i)if arr2[i] > arr2[i-1] and arr1[i] <= arr2[i-1]:swap(arr1, arr2, i)if arr2[i] > arr2[i-1]:flag = Falsebreakreturn flagimport sysline = sys.stdin.readline()T = int(line)for i in range(T):line = sys.stdin.readline()n = int(line)line = sys.stdin.readline()arr1 = [int(v) for v in line.split()]line = sys.stdin.readline()arr2 = [int(v) for v in line.split()]flag = _sort(arr1, arr2)if flag:print(&quot;YES&quot;)else:print(&quot;NO&quot;)# 100%