[PYTHON] concours yukicoder 275 Record de participation

concours yukicoder 275 Record de participation

A 1291 Small check

Notez que la réponse est un entier supérieur ou égal à 0, donc il y a un piège dans un chiffre. D i </ sub> ≤ 100, donc si vous calculez la réponse docilement avec un entier, elle dépassera la plage de int64. Python, donc rien Je peux calculer sans réfléchir.

N, *d = map(int, open(0).read().split())

for i in range(N):
    if d[i] == 1:
        print(10)
    else:
        print(9 * 10 ** (d[i] - 1))

Eh bien, il n'est pas difficile de calculer avec une chaîne de caractères.

N, *d = map(int, open(0).read().split())

for i in range(N):
    if d[i] == 1:
        print(10)
    else:
        print('9' + '0' * (d[i] - 1))

C 1293 2 types de routes

Considérez où vous pouvez aller de la ville i. Soit j une ville incluse dans l'ensemble des villes S (y compris la ville i elle-même) qui peut être atteinte depuis la ville i par une autoroute, puis la ville j peut être atteinte par une route piétonne. L'ensemble somme des ensembles (y compris la ville j elle-même) est l'ensemble des villes qui peuvent être atteintes à partir de la ville i. Et, bien sûr, toutes les villes qui peuvent être atteintes à partir des villes incluses dans le même ensemble S sont identiques. Autrement dit, pour chaque ensemble S, Puisque le traitement est effectué pour le nombre de villes incluses dans l'ensemble S, il peut être résolu comme * O * (* N *).

from sys import setrecursionlimit, stdin


def find(parent, i):
    t = parent[i]
    if t < 0:
        return i
    t = find(parent, t)
    parent[i] = t
    return t


def unite(parent, i, j):
    i = find(parent, i)
    j = find(parent, j)
    if i == j:
        return
    parent[j] += parent[i]
    parent[i] = j


readline = stdin.readline
setrecursionlimit(10 ** 6)

N, D, W = map(int, readline().split())

car = [-1] * N
for _ in range(D):
    a, b = map(lambda x: int(x) - 1, readline().split())
    unite(car, a, b)

walking = [-1] * N
for _ in range(W):
    c, d = map(lambda x: int(x) - 1, readline().split())
    unite(walking, c, d)

xs = [i for i in range(N) if car[i] < 0]
cs = {}
ss = {}
for x in xs:
    cs[x] = 0
    ss[x] = set()

for i in range(N):
    a = find(car, i)
    b = find(walking, i)
    if b in ss[a]:
        continue
    ss[a].add(b)
    cs[a] -= walking[b]

result = 0
for x in xs:
    result -= car[x] * (cs[x] - 1)
print(result)

Recommended Posts

yukicoder contest 265 Record de participation
concours yukicoder 266 Record de participation
concours yukicoder 243 Record de participation
yukicoder contest 273 Record de participation
concours yukicoder 252 Record de participation
concours yukicoder 259 Record de participation
concours yukicoder 249 Record de participation
concours yukicoder 271 Record de participation
Concours yukicoder 251 Record de participation
yukicoder contest 242 Record de participation
concours yukicoder 241 Record de participation
yukicoder contest 257 Record de participation
Concours yukicoder 254 Record de participation
yukicoder contest 246 Record de participation
concours yukicoder 275 Record de participation
Concours yukicoder 274 Record de participation
concours yukicoder 247 Record de participation
yukicoder contest 261 Record de participation
yukicoder contest 248 Record de participation
yukicoder contest 270 (concours de mathématiques) Record de participation
yukicoder contest 272 (Weird math contest) Record de participation
record de 256 entrées
record de participation au concours 267 de yukicoder
record du concours 264 de yukicoder
yukicoder contest 245 record d'inscription
record de participation au concours yukicoder 250
record du concours 262
concours yukicoder 259 avis
concours yukicoder 264 avis
concours yukicoder 267 avis
concours yukicoder 266 avis
concours yukicoder 263 avis
yukicoder contest 268 avis
AtCoder Beginner Contest 181 Rapport de participation
AtCoder Beginner Contest 151 Rapport de participation
AtCoder Débutant Contest 176 Rapport de participation
AtCoder Beginner Contest 154 Rapport de participation
Note de participation au concours pour débutants AtCoder # 003
AtCoder Grand Contest 041 Rapport de participation
AtCoder Beginner Contest 166 Rapport de participation
AtCoder Grand Contest 040 Rapport de participation
AtCoder Beginner Contest 153 Rapport de participation
AtCoder Beginner Contest 145 Rapport de participation
AtCoder Débutant Contest 184 Rapport de participation
AtCoder Beginner Contest 165 Rapport de participation
Rapport de participation au concours AtCoder Débutant 160
AtCoder Beginner Contest 169 Rapport de participation
AtCoder Beginner Contest 178 Rapport de participation
AtCoder Beginner Contest 163 Rapport de participation
AtCoder Beginner Contest 164 Rapport de participation
Rapport de participation au concours régulier AtCoder 105
Rapport de participation au concours AtCoder Débutant 150
Rapport de participation au concours AtCoder Débutant 180
AtCoder Regular Contest 104 Rapport de participation
AtCoder Beginner Contest 156 Rapport de participation
AtCoder Beginner Contest 162 Rapport de participation
AtCoder Débutant Contest 157 Rapport de participation
AtCoder Beginner Contest 167 Rapport de participation
AtCoder Débutant Contest 179 Rapport de participation