常用数据结构
常用数据结构 1,头文件 1234567891011121314#include <iostream>#include <iomanip>#include <cmath>#include <string>#include <vector>#include <algorithm>#include <map>#include <set>#include <unordered_map>#include <unordered_set>#include <queue>#include <deque>#include <stdexcept>#include <random> 2,自定义数据结构 1, 线段树 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152// 1>,...
THYTHM 音游
THYTHM 音游 项目地址 :https://github.com/Sakjijdidji55/Thythm-2.0/tree/master
力扣每日一题讲解
力扣每日一题讲解 2025-07-24 2322 从树中删除边的最小分数 题目链接: https://leetcode.cn/problems/minimum-score-after-removals-on-a-tree/ 问题描述: 存在一棵无向连通树,树中有编号从 0 到 n - 1 的 n 个节点, 以及 n - 1 条边。 给你一个下标从 0 开始的整数数组 nums ,长度为 n ,其中 nums[i] 表示第 i 个节点的值。另给你一个二维整数数组 edges ,长度为 n - 1 ,其中 edges[i] = [ai, bi] 表示树中存在一条位于节点 ai 和 bi 之间的边。 删除树中两条 不同 的边以形成三个连通组件。对于一种删除边方案,定义如下步骤以计算其分数: 分别获取三个组件 每个 组件中所有节点值的异或值。 最大 异或值和 最小 异或值的 差值 就是这一种删除边方案的分数。 例如,三个组件的节点值分别是:[4,5,7]、[1,9] 和 [3,3,3] 。三个异或值分别是 4 ^ 5 ^ 7 = 6、1 ^ 9 = 8 和 3 ^ 3 ^ 3 =...
数据结构入门
数据结构入门 1, 哈希表的c语言与c++实现 1.1...
四至五月学习笔记
学习笔记 力扣 982 按位与为零的三元组 思路:暴力枚举 先枚举一二个数,再看第三个数是否满足条件 前者是O(n^2) 123456unordered_map<int, int> cnt; // 记录每个数出现的次数for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { cnt[arr[i] & arr[j]]++; // 记录每个数出现的次数 }} 然后用一个循环遍历所有可能的数,看是否满足条件,并且找到每个数的补码集合 12345678for (int i:arr){ int mask = i^((1<<16)-1); // 找到补码,因为数据最大是16位,所以补码是1<<16-1 int sub = mask; do{ ans += cnt[sub]; sub = (sub-1)&mask; //...
字典树的基础算法
...
树状数组的原理
...
c语言学习-3
c语言学习-3 前两波我们学习完了c语言的基础语法,接下来我们用一个项目来深入理解所学知识。 项目地址:https://github.com/Sakjijdidji55/Racing-Car/tree/master 项目简介 本项目是一个赛车游戏,玩家通过控制赛车躲避障碍物,最终到达终点。 项目结构 项目包含以下文件: (注:后缀名.cpp是因为项目需引入easyx库文件,.c无法使用这个文件,本项目语法均为c语言风格语法,笔者希望这个项目可以对你有所帮助) main.cpp:主程序文件,只包含main函数。 Body.cpp: 程序主体,包含赛车、障碍物、背景等对象及其处理。 Car.cpp: 赛车对象及其处理。 Coin.cpp: 金币对象及其处理。 RoadLine.cpp: 路线对象及其处理。 Queue.cpp: 自实现循环队列。 image文件夹:存放游戏所需图片资源。 music文件夹:存放游戏所需音乐资源。 游戏原理 如何实现主角也就是我们自己操作的对象的移动效果 1, 路线以及游戏的各种资源向下移动 2,...
c语言学习-2
c语言学习-2 1. 指针 1. 介绍 指针是一个变量,其值为另一个变量的地址,即,指针变量的值就是地址。指针变量声明的一般形式为: 1type *var-name; 其中,type 是指针的基类型,var-name 是指针变量的名称。* 表示这是一个指针变量。 例如,声明一个指向整数类型的指针变量:int *ip; 指针变量的值是一个地址,可以使用 & 运算符获取变量的地址,并将其赋值给指针变量。例如: 123int var = 10;int *ip;ip = &var; 在上述代码中,ip 指向变量 var 的地址。可以使用 * 运算符获取指针变量所指向的值。例如: 12345int var = 10;int *ip;ip = &var;printf("Value of var variable: %d\n", var);printf("Value available at the address stored in ip variable: %d\n", *ip); 输出结果为: 12Value of var...
c语言学习--1
c语言学习–1 欢迎来到c语言学习,本篇是c语言学习的第一篇,主要介绍c语言的基础知识,包括c语言规范 、变量、常量、运算符、控制语句、函数、数组、字符串等。 一,c语言规范 以下是阿里c语言规范 1. 缩进 使用空格进行缩进,每次缩进4个空格 代码块的分界符(如大括号)前后都需要加空格 条件语句、循环语句、函数定义等语句的左大括号前不加空格,右大括号独占一行 12345if (condition) { // do something} else { // do something else} 2. 命名 变量名、函数名、宏定义等遵循驼峰命名法,如myVariable、myFunction、MY_MACRO等 常量名、宏定义等全部大写,单词之间用下划线分隔,如MY_CONSTANT、MAX_VALUE等 函数名和变量名不要使用保留字 12345int myVariable = 10;void myFunction() { // do something}#define MAX_VALUE...













