LeetCode 682: Sistema de Pontuação de Beisebol (C++/Java)

O problema 682 do LeetCode simula um rgeistrador de pontos de um jogo de beisebol. Dada uma lista de strings, cada string pode ser um dos seguintes tipos: Número inteiro: Representa diretamente os pontos ganhos na rodada atual. "+": Os pontos da rodada atual são a soma dos pontos das duas últimas rodadas válidas. "D": Os po ...

Publicado em 7-14 10:33

Resolução de Problemas AtCoder Beginner Contest 292: De Manipulação de Strings a Teoria de Grafos

Problema A: Conversão para Maiúsculas O desafio conisste em receber uma string composta por letras minúsculas e transformá-la integralmente em letras maiúsculas. Em C++, isso pode ser resolvido iterando sobre a string e utilizando a função toupper() ou manipulando diretamente os valores ASCII. #include <iostream> #include <string> # ...

Publicado em 7-14 09:20

Diagnóstico de Falhas de Software com Captura de Exceções

Durante a execução de um software, encontrar uma falha inesperada como um encerramento abrupto (crash) pode ser problemático. Em um cenário real, uma aplicação pode finalizar durante a noite, e os logs do Windows podem apenas registrar um código genérico como 0xC0000005, tornando impossível identificar a função específica onde a exceção ocorreu ...

Publicado em 7-14 07:18

Calibração Automática Mão-Olho para Robôs Industriais com OpenCV em C++

Este artigo detalha o processo de calibração automática mão-olho ("eye-in-hand") utilizando OpenCV em C++. O cenário de aplicação envolve um braço robótico de seis eixos que executa tarefas de inserção, onde uma câmera montada na ferramenta (gripper) do robô captura um objeto para alinhá-lo com um alvo. Princípios da Calibração 1. Sis ...

Publicado em 7-13 12:55

Resolução de Problemas com Busca Binária em C++

Introdução à Busca Binária em Problemas de Programação Competitiva A busca binária é um algoritmo fundamental amplamente utilizado na programação competitiva devido à sua eficiência (complexidade de tempo logarítmica O(log N)). Este artigo explora diversas aplicações da busca binária em problemas comuns, desde a localização de elementos até a c ...

Publicado em 7-13 10:38

Análise reversa de aplicações Qt em C++ com Ghidra

Introdução Analisar aplicações compiladas a partir de C++ é consideravelmente mais desafiador do que trabalhar com código C, principalmente devido a construções como classes, polimorfismo, herança e templates. No entanto, ao final, todo objeto ocupa um bloco contínuo de memória e toda função é chamada por mecanismos previsíveis. Compreender o A ...

Publicado em 7-13 09:32

Desenvolvimento de Robô Bípede com Arduino Uno e Cinemática Inversa

A construção de um robô bípede exige não apenas precisão mecânica, mas também um controle lógico refinado para coordenar os movimentos de múltiplas articulações de forma síncrona. Utilizando uma placa Arduino Uno, é possível controlar seis servomotores que compõem os eixos das pernas (quadril, joelho e tornozelo), permitindo a execução de ciclo ...

Publicado em 7-13 07:14

Segment Trees: Estrutura e Aplicações

Uma Segment Tree é uma estrutura de dados do tipo árvore binária, projetada para particionar intervalos em subintervalos unitários. Cada folha corresponde a um elemento da sequência original, facilitando operações eficientes em intervalos específicos. Essa estrutura permite consultas em O(log N), tornando-a ideal para problemas que envolvem bus ...

Publicado em 7-13 07:12

Armazenando Arquivos em Banco de Dados MySQL com Qt

Durante o desenvolvimento de uma aplicação desktop com Qt, surgiu a necessidade de salvar arquivos gerados pelo programa diretamente no banco de dados MySQL. Inicialmente, tentei ler o arquivo para uma variável do tipo QByteArray e inserir em um campo do tipo mediumblob, porém os dados sempre apareciam como NULL na tabela. Também tentei utiliza ...

Publicado em 7-13 03:00

Análise pós-concurso do AtCoder Beginner Contest 383

Problema A A solução é uma simulação direta. Não há grandes complicações. int main() { int linhas, colunas; cin >> linhas >> colunas; vector grade(linhas); for (int i = 0; i < linhas; i++) cin >> grade[i]; int contador = 0; for (int i = 0; i < linhas; i++) { for (int j = 0; j < colunas; j++) { if (grade[i ...

Publicado em 7-13 02:36