代码风格
代码风格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++语法进阶第一章 字符和字符串(字符数组)第二章 多维数组2.9 string字符串3.0 函数3.1 结构体3.2 指针文件操作
枚举类型枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓”枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
创建枚举,需要使用关键字 enum。枚举类型的一般形式为:
enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数]} 枚举变量;
如果枚举没有初始化, 即省掉”=整型常数”时, 则从第一个标识符开始。
例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 “blue”。
enum color { red, green, blue } c;c = blue;
默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名 ...
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安装 ...
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 (静音切换)
先打开一个终端输入命 ...
arch linux安装(到U盘中)教程(四 输入法以及背景设置)
第一部分 fcitx5输入法的安装1. fcitx5安装sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color
安装即可这里面包含了fcitx5本体以及中文包以及模仿微软的一个皮肤
这个时候我们有win+p打开dmenu输入fcitx5-config(就是fcitx5的配置ui)
第一次打开会出现这个因为我们还没有启用fcitx5我们直接点击run fcitx5启动即可之后
将这个选项去掉,这个是只显示英文的一些键盘,取消之后我们就可以看到中文的了
我们要用到的就是Pinyin我们双击就可以了
这个时候就可以看到左边已经被添加进来了
我们可以用ctrl+space(空格)打开fcitx5以及中英文切换
我们还需要去sudo vim /etc/environment在后面添加
GTK_IM_MODULE=fcitxQT_IM_MODULE=fcitxXMODIFIERS=@im=fcitxSDL_IM_MODULE=fcitxGLFW_IM_MODULE=ibus
之后需要重启一下 ...
arch linux安装(到U盘中)教程(三 suckless三件套)
suckless三件套下载安装由于是安装到U盘里面的所以我们不用桌面环境用更为简洁高效的dwm
窗口管理器,这个是由suckless这个组织开发维护的,源代码是C语言写的总共才不到两千行
首先我们创建一个文件夹夹专门放dwm(窗口管理器)以及st(终端)dmenu(启动)
重启之后我们就可以用用户名密码登录了
sudo pacman -S git(如果没有安装git的话需要安装一下)mkdir sucklesscd sucklessgit clone https://git.suckless.org/dwmgit clone https://git.suckless.org/stgit clone https://git.suckless.org/dmenugit clone https://git.suckless.org/slstatus
说是三件套 但是这里多安装了一个slstatus有了后面配置状态栏的
cd dwmsudo make clean installcd ..cd stsudo make clean installcd ..cd dmenusudo make cl ...
arch linux安装(到U盘中)教程(二 基础设置)
arch的基础设置1. 进入系统接上一篇输入用户名root以及密码之后就可以进入系统了
可以看到@后面是192这是默认的系统名称下面进行更改
2. 连接网络输入nmtui打开网络界面
第一个选项
用方向键将光标移动到add添加一个网络,如果是网线的话在左边可以看到
第一行(Profile name)填写wifi的名称(随意就可以)
第二行(Device)写无线网卡的名称(可以在终端中用ip addr查看默认是wlan0也有可能不一样)
第三行(SSID)才是要连接的wifi的名称比如CMCC-xxx-5G
第四行(Mode)默认
第五行(Security)按回车(enter)用wpa这个就可以
之后输入密码
输入密码之后直接ok就可以其他的不用动了
之后左边就可以看到wifi了一路返回就可以了
退出之后可以用ping -c 4 baidu.com测试一下
如果出现连接时间就说明以及连接成功了
之后pacman -Syy同步一下就可以了
注意:这里也可以nmtui打开界面之后直接用第二个选项activate on connection进行 ...









