c++算法入门
1、递推找规律
1、初始条件
2、基础规律
1、顺推由开始,推结束状态,顺推
最常考的就是 斐波那契数列
#include <iostream>using namespace std;int a[110];int main(){ int n; cin >> n; a[1] = 1; // 初始条件 for (int i = 2; i <= n; i++) { a[i] = a[i - 1] + a[i - 2]; // 规律 关系式 } cout << a[n]; return 0;}
2、逆推由结束,推开始, 逆推
二、递归递进+回归 合在一起是递归,利用函数实现(自己调用自己, 类似于梦中梦)
1、递进函数自己调用自己
#include <iostream>using namespace std;void mf(){ cout << "进入下一层" << e ...
代码风格
代码风格1.文件结构与头文件
使用 #include <bits/stdc++.h>竞赛环境通常支持,可减少记忆头文件的负担,提高编码速度。若环境不支持,则按需包含。
建议使用标准的头文件
必须使用 using namespace std;简洁优先,避免代码冗长。
#include <bits/stdc++.h>using namespace std;
万能头文件的缺点
编译时间增加虽然 OI 通常不限制编译时间,但在一些在线评测系统中,如果编译器需要处理大量头文件,可能会轻微增加编译耗时。不过对大多数竞赛环境来说,这点影响可忽略。
非标准,可移植性差该头文件并非 C++ 标准的一部分,只在 GCC 环境中可用(包括 MinGW、Clang 在某些模式下也支持)。如果比赛环境使用其他编译器(如 MSVC 或未配置的 GCC),代码可能无法编译。
命名冲突风险由于包含了大量命名空间中的符号,可能会意外与自定义变量名冲突(虽然概率很低,但理论上存在)。
部分竞赛明令禁止少数严格的竞赛(如 NOI 某些年份的官方比赛)可能要求选手不得使用 bits/stdc+ ...
c++语法进阶
第二部分 C++语法进阶第一章 二维数组以及多维数组数组 都是线性存储
1、二维数组我想要一个
1 2 34 5 67 8 9
类似于楼房
1、定义// 定义 建议写到全局int a[110][110]; // 默认全部清零 // 行 列
2、使用单独的一个元素,就是变量
// 范围是从0开始的a[0][0] = 0;a[1][1] = 1;cin >> a[1][2];cout << a[1][2];a[2][1] = 1;
3、初始化1、显示长度int a[110][110] = { {1, 2, 3, 4}, {4, 5, 6, 7}, {56, 57, 54, 45},};
2、隐藏行数没有隐藏列数(编译错误)
int b[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
第一章 字符和字符串(字符数组)第二章 字符串string第二章 多维数组2.9 string字符 ...
C++语法基础
第一部分 C++语法基础语言基础简介
本章将会介绍编程相关的知识,C++ 入门教程.
程序是算法与数据结构的载体,是解决 OI 问题的工具.
在 OI 中,最常用的编程语言是 C++.
学习编程是学习 OI 最基础的部分.
第一章 输入输出C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序(入门阶段可以这么认为)。
1.1 基本概念C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、通用的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
1.1.1 面向对象程序设计C++ 完全支持面向对象的程序设计,包括面向对象开发的四 ...
kali-linux安装到U盘中
kali-linux安装到U盘中前言由于手上正好有一个固态U盘,还有一些时间,就决定折腾一下kali,俗话说的好kali学的好,入狱入的早
但是又不想用虚拟机装kali第一是性能问题风扇噪音太大,第二是总感觉怪怪的。所以就直接把kali装到固态U盘里,相当于半个实体机安装了。优点就是便携,缺点就是换系统需要重启,看个人需求吧。
1、准备工作1、首先要准备一个高速U盘或者固态硬盘(固态+硬盘盒)都可以,速度快一点就行,我这里用的是移速的512gb固态U盘还是挺不错的
2、将U盘分好区安装好ventoy
3、准备一个kali的iso
2、安装ventoy首先去ventoy的官网https://www.ventoy.net/cn/download.html
下载一个ventoy然后插入u盘运行
运行之前务必确保U盘中没有重要资料
运行之前务必确保U盘中没有重要资料
运行之前务必确保U盘中没有重要资料
然后分区类型建议选gpt,分区设置可以根据U盘大小在后面留出大概五六十GB的空间给kali系统
这样的话前面的空间还是可以当正常U盘来使用的
之后安装即可
3、准备kali安装 ...
arch-linux安装教程六(zsh的安装与美化)
一、安装zsh以及oh-my-zsh1、zsh安装zsh的话就不多说了,有很多的自定义选项,并支持扩展。可以实现更强大的命令补全,命令高亮等一系列酷炫功能。但是zsh配置起来有一些麻烦所以我们借助oh-my-zsh去直接配置。
首先我们需要安装zsh非常简单sudo pacman -S zsh就可以
2、oh-my-zsh安装oh-my-zsh的官网给出了两种方式安装https://ohmyz.sh/
第一种是用curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
第二种是用wget
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
不过两种方式都差不多主要看网络好不好,如果按上一篇或者配置好,科学上网的话是没有问题的,要不然会报错。
所以我们有第二种方法
可以直 ...
arch linux安装(到U盘中)教程(五 科学上网v2rayA)
1、科学上网由于后续在使用中肯定涉及网络问题所以要先把网络连接上。
这里使用的是v2rayA
1、 首先需要v2ray内核
sudo pacman -S v2ray安装完之后并不需要,所以我们关闭服务就行sudo systemctl disable v2ray --now
2、之后安装v2rayA
也非常简单sudo pacman -S v2raya
然后启动即可
sudo systemctl start v2raya.servicesudo systemctl enable v2raya.service
v2rayA的设置ui是网页形式的,我们用火狐如果没有的话安装一下sudo pacman -S firefox,然后打开浏览器,访问v2rayA的配置地址http://localhost:2017/
第一次进入需要设置用户名以及密码如果忘记密码的话可以删除重新下载或者用命令sudo v2raya --reset-password
之后根据提示导入订阅节点
设置可以用官方推荐的设置
设置好地址与端口就可以正常使用了
neovim快速配置教程
纯windows下的neovim快速配置过程由于github的问题可能图片加载不是很好可以直接下方连接下载最新版解压即可
https://github.com/jiaxinaoliao/neovimBeginCpp
解压之后的REDME.md文件(推荐用typora打开或者notepads(alt+p开启markdown预览)也可以)即可查看
虽然不是开箱即用但是也省略了大部分配置时间
下载之后进行简单的安装即可使用
在纯windows环境不需要虚拟机 纯windows环境下使用
linux/wsl下也可以使用,linux/wsl的配置文件在文件夹的linuxConfig中
macos应该也能兼容(没有试过)
1. 简介系统环境win10或者win11都可以,主要用于c\c++(python,lua,rust等也可以)的学习使用(学习编程或者小项目)
可以实现IDE的基本功能(编译、运行、调试、跳转、报错、提示等等)
系统:利用的win11的环境windows11专业版22H2版本
(家庭学生版或者其他版本也可以)
终端:最新版的Windows Terminal+ ...
arch linux关机遇到(A stop job is running for ...)
arch linuxarch linux在关机重启的时候经常遇到(A stop job is running for …)等待很长时间都没有办法关闭,导致关机很慢。
编辑/etc/systemd/system.conf文件找到并修改
DefaultTimeoutStartSec=10sDefaultTimeoutStopSec=10s之后保存退出执行systemctl daemon-reload
arch linux声音与背光亮度Fn调节(dwm)
第一部分安装声音与亮度工具arch+dwm中
首先是安装声音和亮度的工具这里用的是alsa和light
sudo pacman -S alsa alsa-utils light
1、声音部分安装之后可以通过alamixer打开声音控制的图形界面
也可以用amixer来调整
这里我们用amixer来调整
amixer sset Master 5%+ unmute (音量加)amixer sset Master 5%- unmute (音量减)amixer sset Master toggle (静音切换)
我这里不知道为什么关闭Master的时候Speacker也会一起静音所以我这里静音切换用
amixer sset Master toggle && amixer sset Speacker unmute
我们可以用shell脚本来设置也可以直接在dwm的配置中设置,这里我们直接去改配置就行
首先要确定我们的笔记本键盘的功能键在linux中的名称比如
我这里是Fn+F6 (音量加)Fn+F5 (音量减)Fn+F4 (静音切换)
先打开一个终端输入命 ...










