Skip to content

Instantly share code, notes, and snippets.

@uchidama
uchidama / abc165_d.py
Last active July 21, 2021 17:40
AtCoder Beginner Contest 165 [ D - Floor Function ] https://atcoder.jp/contests/abc165/tasks/abc165_d
'''
[問題]
https://atcoder.jp/contests/abc165/tasks/abc165_d
[解説]
https://blog.hamayanhamayan.com/entry/2020/05/02/225827
'''
import sys
@uchidama
uchidama / abc159_d.py
Created July 21, 2021 16:53
AtCoder Beginner Contest 159 [ D - Banned K ] https://atcoder.jp/contests/abc159/tasks/abc159_d
'''
[問題]
https://atcoder.jp/contests/abc159/tasks/abc159_d
[参考]
https://blog.hamayanhamayan.com/entry/2020/03/22/235319
 C(個数,2)、つまり、個数×(個数 - 1)/2の総和を取れば答えになる。
[結果]
PyPy3(7.3.0) AC 249ms
@uchidama
uchidama / abc169_d.py
Created July 20, 2021 17:26
AtCoder Beginner Contest 169 [ D - Div Game ] https://atcoder.jp/contests/abc169/tasks/abc169_d
'''
[問題]
https://atcoder.jp/contests/abc169/tasks/abc169_d
[解説]
https://blog.hamayanhamayan.com/entry/2020/06/01/210704
 素因数分解は計算量 O(sqrt(N)) 
 制約条件N=10^12なので計算量は10^6
 計算量から素因数分解をメタ読みできる。
 
@uchidama
uchidama / abc166_c.py
Created July 20, 2021 15:48
AtCoder Beginner Contest 166 [ C - Peaks ] https://atcoder.jp/contests/abc166/tasks/abc166_c
'''
[問題]
https://atcoder.jp/contests/abc166/tasks/abc166_c
[結果]
PyPy3(7.3.0) AC 180ms
Python(3.8.2) AC 272ms
'''
import sys
@uchidama
uchidama / abc209_d.py
Created July 19, 2021 06:53
AtCoder Beginner Contest 209 [ D - Collision ] https://atcoder.jp/contests/abc209/tasks/abc209_d
'''
[問題]
https://atcoder.jp/contests/abc209/tasks/abc209_d
[解法]
https://youtu.be/FEDp2Kzc7jk?t=3245
 二分木の問題。
 c,d間の距離の偶奇が答えになる。
 最小共通祖先(Lowest Common Ancestor)を求めなければならない気がするが、偶奇の判定はc,dの深さだけで問題ない。
 depを深さと考えて、最短距離は
@uchidama
uchidama / abc210_c.py
Created July 18, 2021 15:14
AtCoder Beginner Contest 210 [ C - Colorful Candies ] https://atcoder.jp/contests/abc210/tasks/abc210_c
'''
[問題]
https://atcoder.jp/contests/abc210/tasks/abc210_c
[解法]
しゃくとり法で解けた
[参考]
AtCoder Beginner Contest 032 [ C - 列 ]をPythonで解く。しゃくとり法をやってみる(💧水色diff)
https://uchidama.hatenablog.com/entry/2021/07/16/002834
@uchidama
uchidama / abc210_d.py
Last active July 18, 2021 15:46
AtCoder Beginner Contest 210 [ D - National Railway ] https://atcoder.jp/contests/abc210/tasks/abc210_d
'''
[問題]
https://atcoder.jp/contests/abc210/tasks/abc210_d
[解説]
https://youtu.be/_mhHn_o6b3Y?t=3093 
 基本、snukeさんのこのコードをPythonコンバート
https://atcoder.jp/contests/abc210/editorial/2298
https://kanpurin.hatenablog.com/entry/2021/07/17/232213
@uchidama
uchidama / abc172_c.py
Created July 15, 2021 16:09
AtCoder Beginner Contest 172 [ C - Tsundoku ] https://atcoder.jp/contests/abc172/tasks/abc172_c
'''
[問題]
https://atcoder.jp/contests/abc172/tasks/abc172_c
[参考]
https://blog.hamayanhamayan.com/entry/2020/06/27/230511
 変形?しゃくとり法で数列A、Bを走査する
[結果]
PyPy3(7.3.0) AC 146ms
@uchidama
uchidama / abc032_c.py
Created July 15, 2021 15:11
AtCoder Beginner Contest 032 [ C - 列 ] https://atcoder.jp/contests/abc032/tasks/abc032_c
'''
[問題]
https://atcoder.jp/contests/abc032/tasks/abc032_c
 しゃくとり法の練習問題
[解法]
Pythonでしゃくとり法(尺取り法)を実装してみる-ABC032
https://nashidos.hatenablog.com/entry/2020/02/02/165319
 ここ参考
@uchidama
uchidama / abc162_c.py
Created July 14, 2021 02:10
AtCoder Beginner Contest 162 [ C - Sum of gcd of Tuples (Easy) ] https://atcoder.jp/contests/abc162/tasks/abc162_c
'''
[問題]
https://atcoder.jp/contests/abc162/tasks/abc162_c
'''
import sys
import functools
import math
sys.setrecursionlimit(10 ** 6) # 再帰上限の引き上げ