2番目の物語...
漠然とした壮大なタイトルが書かれていましたが、
自分で脅したいのか~!Reserパンダみたいに鼻が死んでる~!トットちゃんの姿を見せてくれます😎
白駿
この問題にはいろいろな解法がある(?)sysモジュールを使わなくても解ける方法を2つ書きます.(絶対面倒くさい、林が厚い…)
#1メソッド
自分で脅したいのか~!Reserパンダみたいに鼻が死んでる~!トットちゃんの姿を見せてくれます😎
白駿
t = int(input())
for _ in range(t):
m,n,x,y = map(int, input().split())
x -= 1
y -= 1
k = x
while k < n*m:
if k%n == y:
print(k+1)
break
k += m
else:
print(-1)
[🗝 key point]
i*M+x(i>=0)을 이용하면 됨.
이게 무슨 뜻이냐~면!
예를 들어 M=5, N=7, x=3, y=2이다.
이때, 23:<3,2>를 찾고 싶다면 찾는 해의 값 = i*5+3을 이용해서 구할 수 있다는 뜻
시간복잡도 == O(N)
白駿1748n = int(input())
ans = 0
start = 1
length = 1
while start <= n:
end = start*10-1
if end>n:
end = n
ans += (end-start+1)*length
start *= 10
length += 1
print(ans)
[🗝 key point]
1-9까지는 1자리 수이고,
10-99까지는 2자리 수이다.
이를 이용해서 N이 356이라고 가정했을 때,
(9-1+1)x1 + (99-10+1)x2 + (356-100+1)x3 으로 정답을 도출해 낼 수 있는 것이다.
이것을 수식화 한 것이 위의 코드에 있는 (end-start+1)*length이다.
標準9095この問題にはいろいろな解法がある(?)sysモジュールを使わなくても解ける方法を2つ書きます.(絶対面倒くさい、林が厚い…)
#1メソッド
n = int(input())
def sum(n):
if n == 1:
return(1)
elif n == 2:
return(2)
elif n == 3:
return(4)
else:
return sum(n-1) + sum(n-2) + sum(n-3)
for i in range(n):
a = int(input())
print(sum(a))
[🗝 key point]
이 코드에 사용한 점화식은 f(n) = f(n+1) + f(n+2) + f(n+3), (n>3)
#2つ目の方法n = int(input())
input_list=[]
for i in range(n):
input_list.append(int(input()))
dp=[1,2,4]
for i in range(3,max(input_list)):
dp.append(dp[i-1]+dp[i-2]+dp[i-3])
for i in input_list:
print(dp[i-1])
[🗝 key point]
이 코드에 사용한 점화식은 dp[n] = dp[n-1]+dp[n-2]+dp[n-3]
素晴らしい!💨Reference
この問題について(2番目の物語...), 我々は、より多くの情報をここで見つけました https://velog.io/@gyeomvely/2ndテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol