Letztes Mal Dieses Mal werden wir das lösbare Problem von [this] lösen (https://qiita.com/drken/items/e77685614f3c6bf86f44).
#24 ABC045-C 1110diff
** Gedanken ** Zum ersten Mal habe ich eine Technik namens Bit Full Search gelernt, also werde ich sie verwenden. Suchen Sie alle, ob zwischen den Buchstaben ein Symbol eingefügt werden soll.
s = input()
ans = 0
n = len(s) - 1 #Das Leerzeichen ist eins weniger als die Anzahl der Zeichen
for i in range(2 ** n):
op = [''] * n
for j in range(n):
if ((i >> j) & 1):
op[n - j - 1] = '+'
formula = ''
for p_n, p_o in zip(s,op+['']):
formula += (p_n+p_o)
ans += eval(formula)
print(ans)
ABC079-C 302diff
** Gedanken ** Der Unterschied zum vorherigen Problem besteht darin, dass es zwei Symbole gibt, die jedoch fast gleich sind. eval berechnet den Zeichenausdruck und gibt int zurück.
abcd = input()
n = len(abcd) - 1
for i in range(2 ** n):
op = ['-'] * n
for j in range(n):
if ((i >> j) & 1):
op[n - j - 1] = '+'
formula = ''
for p_n, p_o in zip(abcd, op + ['']):
formula += (p_n + p_o)
if eval(formula) == 7:
print(formula + '=7')
break
ARC029 465diff
** Gedanken ** Durchsuchen Sie alle Teile, je nachdem, welchen Fleischgrill Sie verwenden. Danach aktualisieren Sie einfach den Mindestwert.
n = int(input())
t = [int(input()) for _ in range(n)]
ans = 10**9
for i in range(2 ** n):
niku = ['Left'] * n
for j in range(n):
if ((i >> j) & 1):
niku[n - j - 1] = 'Right'
wait_time_left = 0
wait_time_rignt = 0
for k in range(n):
if niku[k] == 'Left':
wait_time_left += t[k]
if niku[k] == 'Right':
wait_time_rignt += t[k]
wait_time = max(wait_time_left,wait_time_rignt)
ans = min(ans,wait_time)
print(ans)
ABC104-C Ich konnte die Bearbeitung des zu lösenden Problems nicht zur Hälfte schreiben.
d, g = map(int,input().split())
pc = [list(map(int,input().split())) for _ in range(d)]
n = len(pc)
ans = 10**9
for i in range(2 ** n):
cost = 0
score = 0
check = [False] * n
for j in range(n):
if ((i >> j) & 1):
check[n - j - 1] = True
for k in range(n):
if check[k]:
for l in range(pc[k][0]):
cost += 1
score += 100 * (k+1)
if l == pc[k][0]-1:
score += pc[k][1]
if score >= g:
ans = min(ans,cost)
print(ans)
ABC002-C Als ich darüber nachdachte, ob ich 12 Mitglieder in die Fraktion aufnehmen sollte, konnte ich keinen Code schreiben, um mich gegenseitig zu bestätigen.
schwer. Es macht Spaß, neue Dinge zu lernen, aber wenn Sie es nicht lösen können, ist es bedeutungslos. Lösen Sie also frühere Fragen, damit Sie Wurzeln schlagen können. wir sehen uns
Recommended Posts