Conjuntos Disjuntos: Fundamentos e Aplicações em Programação Competitiva

Conjuntos disjuntos (ou union-find) são estruturas de dados usadas para gerenciar a partição de elementos em conjuntos disjuntos. Implementados como uma floresta, cada árvore representa um conjunto, e os nós dentro da árvore correspondem aos elementos desse conjunto. A estrutura suporta duas operações principais: União (Union): combina dois co ...

Publicado em 6-22 00:32

Resolução de Equações com Aritmética Modular e Algoritmo de Qin Jiushao

Pré-requisitos Para uma variável (x) e um módulo (p), se definimos (x = kp + b), então (x \equiv b ,(\mod p)), e simultaneamente (f(x) \equiv f(b) ,(\mod p)). A partir disso, podemos concluir que: sob o módulo p, uma condição necessária para (f(x) = 0) é que (f(x \mod p) = 0). Quando o módulo é suficientemente grande ou consideramos múltiplos m ...

Publicado em 6-21 21:41

Detecção de Palavras em uma Matriz de Letras

Dado uma matriz quadrada de dimensão n×n contendo letras, pode existir múltiplas ocorrências da palavra yizhong. A palavra na matriz deve estar posicionada em sequência contínua ao longo de uma direção constante. A busca deve considerar as 8 direções possíveis (horizontal, vertical e diagonais). Como as palavras podem se cruzar e compartilhar l ...

Publicado em 6-20 05:36

Resumo das Soluções do Codeforces Round 1017 (Div. 4)

Este artigo apresenta um resumo das soluções para os problemas A, B, C, D e E do Codeforces Round 1017, Divisão 4. As soluções focam em otimização e lógica para resolver cada desafio de forma eficiente. Problema A A tarefa consiste em receber três strings e concatenar o primeiro caractere de cada uma delas para formar a saída. A solução itera s ...

Publicado em 6-13 01:59

Exercícios de Implementação do Autômato de Sufixo

O Autômato de Sufixo (SAM) é uma estrutura de dados eficiente para manipulação de strings. A seguir, apresento soluções para diversos problemas envolvendo SAM, com código reescrito para clareza e concisão. Contagem de Substrings Distintas Para uma string S, o número de substrings distintas pode ser calculado pela soma das diferenças entre o com ...

Publicado em 6-12 23:03

Análise dos Problemas do AtCoder Beginner Contest 371

Análise dos Prbolemas do AtCoder Beginner Contest 371 Este artigo explora as soluções técnicas dos problemas do AtCoder Beginner Contest 371, com foco em algoritmos e estruturas de dados. Problema A O Problema A envolve determinar o segundo maior entre três indivíduos, A, B e C, com base em desigualdades fornecidas. A abordagem eficiente consis ...

Publicado em 6-8 01:14

Resolução dos Problemas do Codeforces Round 904 (Div. 2)

A. Design Simples Uma aobrdagem de força bruta é viável aqui, já que o limite superior de 1e9 não é atingido na prática. O objetivo é encontrar o menor inteiro maior ou igual a x cuja soma dos dígitos seja divisível por k. #include <iostream> using namespace std; void resolver() { long long inicio, divisivel_por; cin >> ini ...

Publicado em 6-6 01:13