2021.08.16 P1363 Labirinto de Ilusão (dfs, eu senti a forte maldade do criador)

O labirinto de ilusão é infinito, mas é formado pela repetição de uma matriz de N linhas por M colunas. Algumas células são estradas, representadas por '.', e outras são paredes, representadas por '#'. O ponto de partida é marcado com 'S'. LHX e WD podem mover-se para cima, baixo, esquerda e direita, mas apenas para células que não sejam parede ...

Publicado em 10-3 06:41

Mecanismos de Passagem de Parâmetros em C++

Passagem por Valor Na passagem por valor, o compilador cria uma cópia local do dado original e a armazena em um novo endereço de memória dentro do escopo da função. Quaisquer modificações realizadas no parâmetro afetam apenas essa cópia, preservando a variável original intacta. Considerações: Segurança: Garante que a função não altere o estado ...

Publicado em 9-29 14:55

Conversão entre Decimal, Hexadecimal e BCD em C++, com Funções e Impressão Formatada

Conversões Numéricas Implementações em C++ para conversão entre diferentes formatos numéricos, icnluindo decimal, hexadecimal e BCD, com uso de funções bem definidas e saída formatada via printf. Função: Inversão de Bytes Realiza o complemento de um byte em dados binários: int inverterBytes(unsigned char *saida, const unsigned char *entrada, i ...

Publicado em 9-28 15:42

Mastering Type Conversion in C++: Implicit vs. Explicit Strategies

Type conversion is a foundational mechanism in C++ that enables interoperability between distinct data types. It occurs whenever values must be interpreted or reinterpreted across type boundaries—whether during assignment, arithmetic operations, function calls, or object construction. A deep understanding of how and when conversions happen—auto ...

Publicado em 9-19 06:25

Polimorfismo em C++: Diferenças entre Funções Virtuais e Funções Virtuais Puras

Em C++, o polimorfismo e a implementação de interfaces dependem fundamentalmente de dois conceitos: funções virtuais e funções virtuais puras. Embora ambos utilizem o mecanismo de ligação dinâmica, suas aplicações, regras de definição e impactos no design de classes divergem significativamente. Funções Virtuais: Implementação com Comportamento ...

Publicado em 9-18 11:57

Operadores em C++: Guia Completo

Operadores Aritméticos Os operadores aritméticos realizam operações matemáticas básicas sobre valores numéricos. Símbolo Operação Exemplo Resultado + Adição 5 + 3 8 - Subtração 5 - 3 2 * Multiplicação 5 * 3 15 / Divisão 5 / 3 1 % Módulo 5 % 3 2 ++ Incremento ++x ou x++ Incrementa em 1 -- Decremento --x ou x-- Decrementa em 1 ...

Publicado em 9-18 10:32

Ponteiros, Referências e Classes em C++

Operadores fundamentais: & e * Em C++, o operador & retorna o endereço de uma variável, enquanto o operador * pode declarar um ponteiro ou acessar o valor apontado por ele. #include <iostream> int main() { int x = 10, y = 20; int* ptrX = &x; int* ptrY = &y; std::cout << "Endereco de x: &quot ...

Publicado em 9-17 21:51

Estruturas de Dados em C++: Árvores Binárias, BST e Tabelas Hash

Construção e Percursos em Árvores Binárias A manipulação de árvores binárias é fundamental na ciência da computação. A estrutura básica de um nó pode ser definida utilizando ponteiros para os subnós esquerdo e direito. Abaixo, apresentamos a implementação da criação de uma árvore a partir de uma string em pré-ordem, onde o caractere # indica um ...

Publicado em 9-17 20:47

Fatoração em Primos: Decomposição de Números Individuais e Cálculo Eficiente para Fatoriais

Princípio A dceomposição em fatores primos de um inteiro é feita por divisões sucessivas (trial division). Complexidade \(O(\sqrt{n})\) ou, com otimizações, \(O\left(\frac{\sqrt{n}}{\ln(\sqrt{n})}\right)\). Fatoração de um fatorial \(N!\) Dado um inteiro \(N\), decomponha \(N!\) em fatores primos e exiba cada base \(p_i\) com seu respectivo ex ...

Publicado em 9-15 00:02

Cálculo da Soma de Fatoriais

Problema Dado um número inteiro positivo N, calcule S = 1! + 2! + 3! + ... + N!. Formato de Entrada A entrada consiste em um número inteiro positivo N não superior a 10. Formato de Saída Exiba o valor de S em uma única linha. Exemplo de Entrada 3 Exemplo de Saída 9 Implemetnações em Diferentes Linguagens 1. Versão em C++ #include <iostream ...

Publicado em 9-14 15:06