CPP教程-拓扑排序
CPP教程拓扑排序(topsort)
例题ACWING848
const int N=1e5+5;
int h[N],nxt[N],to[N],cnt,du[N],n,m;
邻接表
void add(int a,int b)
{
to[++cnt]=b;nxt[cnt]=h[a];h[a]=cnt;
}
int q[N],hh,tt;
拓扑排序
void topsort()
{
for(int i=1;i
CPP教程-邻接表
C++教程邻接表序言:目前最主流的手写存图方式是什么?——邻接表
今天我们就来介绍以下什么是邻接表
概念
代码
存储
void add(int a, int b) {
to[++cnt] = b; //新建节点的目标
nxt[cnt] = h[a]; //头插法
h[a] = cnt; //接上
}
遍历
for(int i=h[u];i;i=nxt[i]) //u是起点
//这个代码可以遍历点u的出边;
CPP教程-堆
C++教程堆
请在学习完二叉树后学习堆!
定义
堆是一个比较有序的二叉树,但只有从父节点到子节点之间有序,左右节点是没有顺序的
分类1.大根堆
即 这个二叉树从父节点到子节点是从大到小的
2.小根堆
即这个二叉树从父节点到子节点是从小到大的
相关函数:priority_queue优先序列相关操作:
(p为任意名称)
p.pop(); //弹出顶端的数
p.push(); //插入一个数并且自动排序
p.top(); //读取顶端的数
说明:优先序列默认是一个大根堆
定义方式:
1.大根堆
priority_queue q; //简写
priority_queue q; //全写
2.小根堆
方法一:你可以把数值变成负数,然后用大根堆的方法,读取时再转换回来
方法2:
priority_queue q;
用处:1.堆排序2.快速找第n个最大/小值
CPP教程-高精度
C++教程高精度
介绍:
我们有些时候要对很大的数(超出longlong范围)进行加减乘除,普通的运算符无法完成,我们就需要使用高精度
代码
#include
using namespace std;
//请将函数复制在你的程序里,不用直接从本文件调用!)
//前置(定义变量)(将此代码复制在主函数外)
string sa, sb;
int la, lb, lc;
int a[99999], b[99999], c[99999];
//前置(输入并处理)(放在运算函数的前面)
cin >> sa >> sb;
la = sa.size();
lb = sb.size();
lc = max(la, lb);
for (int i = 0; i < la; i++)
a[la - i] = sa[i] - '0';
for (int i = 0; i < lb; i++)
b[lb - i] = sb[i] - '0';
//输出结果的代码
for (int i = lc; i > 0; i--)
cout < c[i];
s2;
cout < ...
CPP有用的函数-判断&计算
有用的函数(非自带)1.计算GND方法:辗转相除法代码
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
2.判断质数//返回值,是返回true,不是返回false
bool if_prime(int x) {
if (x < 2)
return false;
for (int i = 2; i
我的MC服务器
MOD服务器正式上线!端口play.simpfun.cn:26185
要求mc版本:1.12.2
正版账号:不需要
含Mod:有
mod文件:https://entiesci.github.io/WebProjects/blog/2021/12/12/ntscyrx-mc-server/mods.7z
Ntsc服务器正式上线!端口play.simpfun.cn:20182
要求mc版本:1.12.2
正版账号:不需要
含Mod:无
内容&简介在是一个低性能的mc生存服务器,支持5人以下同时在线
开服时间每周六8:00~周日21:00如果有大佬要play,QQ或发邮件或在留言板中告诉我,我另外开服务器
注意!
在无mod服务器下:
若客户端安装了有物品的mod,则无法使用
若客户端安装了无物品(辅助)mod,无影响
在有无物品mod服务器下:
若客户端没有安装forge无法进入
若客户端不安装mod可以正常上线
在有有物品mod服务器下:
若客户端没有安装forge无法进入
若客户端不安装mod不可以正常上线
qq[qq] 56863066
MD教程
Markdown 教程
*Markdown语法*
*详解*
*快捷键*
*效果*
斜体
无
Ctrl/⌘ + I
斜体
粗体
无
Ctrl/⌘ + B
*粗体*
# 一级标题
“#”后需加空格
无
无
## 二级标题
以此类推三级标题为三个“#”
无
无
链接
“[ ]”间为显示的超文本
Ctrl/⌘ + K
链接
“[ ]”间为图片名
Ctrl/⌘ + Shift + I
“ > ”引用
“ > “后需加空格
Ctrl + Q
无
* 无序列表
无
Ctrl + L
无
1. 有序列表
无
无
无
—
水平分割线
无
————
内联代码 的使用
无
Ctrl/⌘ + Shift + K
无
代码块
无
无
无
颜色代码
无
无
斜体+粗体
无
无
***斜体+粗体***
居中格式
文字
无
文字
自动换行
例:1234567890
Enter
1234567890
输入框
例:1234
无
输入框内的1234
颜色第二种
文字
无
无
文字大小
文字
无
无
字体
无
无
STL-stack
C++之STLstack栈
含义
只能先进后出
定义
stack 栈名
//eg
stack sta;
操作
sta.pop()//弹出
sta.top()//读取栈顶
sta.push()//压入
sta.empty()//判断是否为空
STL-map
++之STLmap无限桶
语法:
map 桶名;
//eg
map p
定义了一个最高支持下标为longlong大小的int桶
插入:
q[num]=num2;
注如果读取了一个不存在的项目,则值为0;
遍历方法
定义一个迭代器
map::iterator 迭代器名
//eg
map::iterator it
然后
for(int it=map.begin();it