完全探索week 3🤔
これは二つのVIXX課題の三つの問題の完全探索問題である.
問題を理解するのは難しい.これは切断されたマルトースの長さを徹底的に探求する問題である.
最初はDPS/DFSで解凍すべきですか?でも.
DPS/DFS/バックグラウンドトラッキングに関する迷路問題では,再帰関数がどのように動作するかを学習することが役立つ問題である.
itertoolsの組合せは,組合せを用いて解決する問題である.
麦芽糖を売る
問題を理解するのは難しい.これは切断されたマルトースの長さを徹底的に探求する問題である.
n, c, f= map(int, input().split())
arr = []
for _ in range(n):
arr.append(int(input()))
m = max(arr)
all_lst = []
for i in range(1, m+1): # i는 길이!!!!!!
prices = 0
for ii in arr:
if ii%i != 0:
price = (ii//i)*i*f - (ii//i)*c
else:
price = (ii//i)*i*f - (ii//i-1)*c
prices += price
all_lst.append(prices)
print(max(all_lst))
IP採掘機
最初はDPS/DFSで解凍すべきですか?でも.
DPS/DFS/バックグラウンドトラッキングに関する迷路問題では,再帰関数がどのように動作するかを学習することが役立つ問題である.
pan = []
for _ in range(4):
pan.append(list(input().split()))
dx=[-1, 0, 1, 0]
dy=[0, 1, 0, -1]
path = []
paths = []
def move(x, y,depth):
global path
global paths
if depth ==9:
# paths.append(path.copy())
paths.append(' '.join(map(str, path)))
return
else:
for i in range(4):
xx=x+dx[i]
yy=y+dy[i]
if 0<=xx<=3 and 0<=yy<=3:
path.append(pan[x][y])
# path += pan[x][y]
move(xx, yy, depth+1)
path.pop()
for rownum in range(4):
for colnum in range(4):
move(rownum, colnum,1)
# print(paths)
# print(len(paths))
print(len(set(paths)))
怪盗
itertoolsの組合せは,組合せを用いて解決する問題である.
from itertools import combinations
n, m = map(int, input().split())
arr = list(input().split())
arr = [int(i) for i in arr]
lst = list(combinations(arr, 3))
l = [sum(i) for i in lst if sum(i) <= m]
print(max(l))
Reference
この問題について(完全探索week 3🤔), 我々は、より多くの情報をここで見つけました https://velog.io/@ann9902/완전탐색week3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol