分野別 初中級者が解くべき過去問精選 100 問 全探索:全列挙
1~4 全探索:全列挙を解く
分野ごとに解いていきます。
ITP1_7_B - How Many Ways?
from itertools import combinations while True: n,x =map(int,input().split()) if n==x and n==0: break L = [i for i in range(1,n+1)] cnt = 0 for i in list(combinations(L,3)): if sum(list(i))==x: cnt+=1 print(cnt)
AtCoder Beginner Contest 106 B - 105
N = int(input()) ans = 0 for i in range(1,N+1,2): cnt = 0 for j in range(1,i): if i%j==0: cnt+=1 if cnt==7: ans+=1 print(ans)
AtCoder Beginner Contest 122 B - ATCoder
S = input() cnt=0 LEN = len(S)+1 for s in range(LEN): for e in range(LEN): if len(set(S[s:e])-set(['A','G','C','T']))==0 and len(S[s:e])>cnt: cnt = len(S[s:e]) print(cnt)
パ研杯2019 C - カラオケ
N,M = map(int,input().split()) A =[] for n in range(N): A.append([int(i) for i in input().split()]) from itertools import combinations L = [int(i) for i in range(len(A[0]))] ans = 0 for i in list(combinations(L,2)): tmp = 0 for n in range(N): tmp += max(A[n][i[0]],A[n][i[1]]) if tmp > ans: ans=tmp print(ans)
こうしてみるとitertools で組み合わせを作って解いているパターンが多いな
眠いので今日はここまで。