1,264
두 행에 그리드 5에서 10까지의 숫자를 입력합니다.
요구 사항 : 왼쪽보다 오른쪽 큰 인접 격자의 수는 아래의 상단보다 크다.
도에 도시 된 바와 같이 두 가지가 충전 방법이 규정되어있다.
가능한 솔루션의 총 수를 계산하십시오.
출력
하시기 바랍니다 출력 정수, 여분의 내용을 인쇄하지 않습니다
주의하십시오
대형 오른쪽
연산
- 알고리즘의 편의를 위해 숫자는 왼쪽 위 및 오른쪽 아래에 그 제 0,9 OK -1이다.
- i와 i가 비교에 5 + 로우로 간주하는
- 어레이 [4]를 처리 할 수없는
- 0-3, 비교 위치 난 내가 + 1, 그리고 난 크기 + 5
- 5-8, 비교 위치 난 1 개 크기 +
문제 해결
답 : 42
from itertools import permutations
def f(data):
for i in range(9):
if i == 4:
continue
if not i//5:
if data[i] < data[i+5] and data[i] < data[i+1]:
continue
else:
break
else:
if data[i] < data[i+1]:
continue
else:
break
if i == 8:
return True
array = [i for i in range(10)]
res = 0
for i in permutations(array[1:-1]):
array[1:-1] = i
if f(array):
res += 1
print(res)
1,276
X 은하 로봇은 자동으로 복제 할 수 있습니다. 그들은 일년의 시간이이 스스로를 복제 한 다음 복제 할 수있는 능력을 잃을 수 있습니다 사용합니다.
X 은하 년 우주로 보내 새로 태어난 로봇을 선출합니다. X 5 갤럭시 원래 로봇, 경우 즉,
일년 후 총입니다 : 5 + 9 = 14
이년의 번호는 : 5 + 9 + 17 = 31
로봇의 총 수는 이후의 N 년 동안 발견 된 경우 어떻게 많은 로봇 계산할 처음에 수?
입력
테스트 데이터 입력 세트의 복수의
상기 의미로 공백으로 구분 테스트 데이터 입력 라인과 두 개의 번호 N (S)의 각각의 세트에 대한. N (S)는 50 비트없고, 100보다 크다.
출력
각 시험 필요한 출력 선과, 제 로봇의 수를 나타내는 정수.
입력 샘플 복사
2 (31)는
97 2218388550399401452619230609499
샘플 출력은 복사
. 5
. 8
주의하십시오
INT 오버플로 저장 될 때,지도 () 길이에 사용될 수 없다 (S) (50)의 최대 값을 갖는, 그러나 python2.2 후에, 자동으로 긴 타입의 값으로 변환되고
연산
잊으 년 N + X 및 보충하기 위해 기억
확장 : 만약 N 알려져 있으며, S (N, x는 초기 수 년이다), 로봇 N의 후 년의 총 수를 찾을 수
- 잘의 계산 재귀
문제 해결
def f(n,s):
up = s + 2**(n+1)-2-n
return up//(2**(n+1)-1)
while True:
n, s = map(int,input().split())
print(f(n,s))
확장 솔루션 :
def f(n,x):
if n == 0:
return x
return f(n-1,2*x-1)+x
while True:
n, s = map(int,input().split())
print(f(n,x))