'''cpp#includeusing namespace std;const int N =1e5+10;int a[N],s[N];int n;int main(){cin>>n;int ans=0;for(int i=0,j=0;i<n;i++){cin>>a[i
Prim算法求最小生成树代码#include<iostream>#include<algorithm>#include <cstring>using namespace std;const int N=510,M=1e5+10,INF=0x3f3f3f3f;int
#include<iostream>#include<vector>#include<algorithm>using namespace std;typedef pair<int ,int> PII;vector<PII>regs;int
其实就是先将每个位置的坐标x和其加的值c存为PII,然后再将每个位置x单独存为一个集合alls,通过去重,排序,得到一个有序的数组用find函数找到每个x的下标位置,再用前缀和将每个位置x的c值加起来#include<iostream>#include<vector>#inc
题目n−皇后问题是指将 n 个皇后放在 n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数 n,请你输出所有的满足条件的棋子摆法。输入共一行,包含整数 n。4输出每个解决方案占 n 行,每行输出一个长度为 n 的字符串,用来表示完整的棋
给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数 n 和 m,表示字符串长度和询问次数。第二行包含一个长度
给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。输入共一行,包含一个整数n。1≤n≤73输出按字典序输出所有排列方案,每个方案占一行。1 2 31 3 22 1 32 3 13 1 23 2 1代码#include<iostream>
给定一个n个点m条边的有向图,点的编号是1到n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。输入第一行包含两个整数n和m接下来m行,每行
bfs模板queue<int> q;st[1] = true; // 表示1号点已经被遍历过q.push(1);while (q.size()){ int t = q.front(); q.pop(); for (int i = h[t]; i != -1; i = n
给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入第一行包含整数n,表示树的结点数。接下来n-1行,每