Skip to content

Commit 68480bb

Browse files
committed
Merge split file by actions
2 parents 0cf284b + 556e02c commit 68480bb

File tree

4 files changed

+104
-23
lines changed

4 files changed

+104
-23
lines changed

code/main.py

Lines changed: 46 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,6 @@ def calc_divisors(N):
108108
計算量は、√Nです
109109
約数は昇順に並んでいます
110110
"""
111-
import heapq
112-
113111
result = []
114112

115113
for i in range(1, N + 1):
@@ -119,11 +117,11 @@ def calc_divisors(N):
119117
if N % i != 0:
120118
continue
121119

122-
heapq.heappush(result, i)
120+
result.append(i)
123121
if N // i != i:
124-
heapq.heappush(result, N // i)
122+
result.append(N // i)
125123

126-
return result
124+
return sorted(result)
127125

128126

129127
def factorization(n):
@@ -680,6 +678,49 @@ def lcp_sum(self, value: str) -> int:
680678
return result
681679

682680

681+
from typing import Tuple
682+
683+
684+
def euclid_dis(x1: int, y1: int, x2: int, y2: int) -> int:
685+
"""
686+
ユークリッド距離を計算します
687+
688+
注意:
689+
この関数はsqrtを取りません(主に少数誤差用)
690+
sqrtを取りたい場合は、自分で計算してください
691+
"""
692+
693+
return ((x1 - x2) ** 2) + ((y1 - y2) ** 2)
694+
695+
696+
def manhattan_dis(x1: int, y1: int, x2: int, y2: int) -> int:
697+
"""
698+
マンハッタン距離を計算します
699+
"""
700+
701+
return abs(x1 - x2) + abs(y1 - y2)
702+
703+
704+
def manhattan_45turn(x: int, y: int) -> Tuple[int]:
705+
"""
706+
座標を45度回転します
707+
回転すると、マンハッタン距離が、チェビシェフ距離になるので、距離の最大値などが簡単に求められます
708+
"""
709+
710+
res_x = x - y
711+
res_y = x + y
712+
713+
return res_x, res_y
714+
715+
716+
def chebyshev_dis(x1: int, y1: int, x2: int, y2: int) -> int:
717+
"""
718+
チェビシェフ距離を計算します
719+
"""
720+
721+
return max(abs(x1 - x2), abs(y1 - y2))
722+
723+
683724
# 便利変数
684725
INF = 1 << 63
685726
lowerlist = list("abcdefghijklmnopqrstuvwxyz")

libs/dis.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from typing import Tuple
2+
3+
4+
def euclid_dis(x1: int, y1: int, x2: int, y2: int) -> int:
5+
"""
6+
ユークリッド距離を計算します
7+
8+
注意:
9+
この関数はsqrtを取りません(主に少数誤差用)
10+
sqrtを取りたい場合は、自分で計算してください
11+
"""
12+
13+
return ((x1 - x2) ** 2) + ((y1 - y2) ** 2)
14+
15+
16+
def manhattan_dis(x1: int, y1: int, x2: int, y2: int) -> int:
17+
"""
18+
マンハッタン距離を計算します
19+
"""
20+
21+
return abs(x1 - x2) + abs(y1 - y2)
22+
23+
24+
def manhattan_45turn(x: int, y: int) -> Tuple[int]:
25+
"""
26+
座標を45度回転します
27+
回転すると、マンハッタン距離が、チェビシェフ距離になるので、距離の最大値などが簡単に求められます
28+
"""
29+
30+
res_x = x - y
31+
res_y = x + y
32+
33+
return res_x, res_y
34+
35+
36+
def chebyshev_dis(x1: int, y1: int, x2: int, y2: int) -> int:
37+
"""
38+
チェビシェフ距離を計算します
39+
"""
40+
41+
return max(abs(x1 - x2), abs(y1 - y2))

libs/math_func.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ def calc_divisors(N):
6969
計算量は、√Nです
7070
約数は昇順に並んでいます
7171
"""
72-
import heapq
73-
7472
result = []
7573

7674
for i in range(1, N + 1):
@@ -80,11 +78,11 @@ def calc_divisors(N):
8078
if N % i != 0:
8179
continue
8280

83-
heapq.heappush(result, i)
81+
result.append(i)
8482
if N // i != i:
85-
heapq.heappush(result, N // i)
83+
result.append(N // i)
8684

87-
return result
85+
return sorted(result)
8886

8987

9088
def factorization(n):

merge_file.bash

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,20 @@ echo "新しいmain.py作成完了"
77
# テンプレ
88
# /bin/cat python/<filename>.py >> code/main.py
99

10-
cat libs/import.py >> code/main.py
11-
cat libs/math_func.py >> code/main.py
12-
cat libs/array_create.py >> code/main.py
13-
cat libs/binary_search.py >> code/main.py
14-
cat libs/modint.py >> code/main.py
15-
cat libs/standard_input.py >> code/main.py
16-
cat libs/yn_func.py >> code/main.py
17-
cat libs/grid.py >> code/main.py
18-
cat libs/memo.py >> code/main.py
19-
cat libs/grath.py >> code/main.py
20-
cat libs/unionfind.py >> code/main.py
21-
cat libs/trie.py >> code/main.py
22-
cat libs/utils.py >> code/main.py
10+
cat libs/import.py >>code/main.py
11+
cat libs/math_func.py >>code/main.py
12+
cat libs/array_create.py >>code/main.py
13+
cat libs/binary_search.py >>code/main.py
14+
cat libs/modint.py >>code/main.py
15+
cat libs/standard_input.py >>code/main.py
16+
cat libs/yn_func.py >>code/main.py
17+
cat libs/grid.py >>code/main.py
18+
cat libs/memo.py >>code/main.py
19+
cat libs/grath.py >>code/main.py
20+
cat libs/unionfind.py >>code/main.py
21+
cat libs/trie.py >>code/main.py
22+
cat libs/dis.py >>code/main.py
23+
cat libs/utils.py >>code/main.py
2324

2425
echo "作業完了"
2526

0 commit comments

Comments
 (0)