- 博客(10)
- 收藏
- 关注
原创 强连通tarjan算法
Summer HolidayTo see a World in a Grain of Sand And a Heaven in a Wild Flower, Hold Infinity in the palm of your hand And Eternity in an hour. ―― William Blake听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家,虽然他手上有所有人的联系方式,但是一个一个联系过去实在太耗时间和电话费了。他知道其他人
2022-03-24 23:45:36
213
原创 题目敌兵布阵-------线段树(单点修改查询,区间修改查询)
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。 中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地
2022-03-08 19:52:30
104
原创 拓扑排序 BFS
#include <iostream>#include <vector>#include <queue>#include <map>using namespace std;int n,m;vector<int> G[20];int in[20];int main(){ while(cin >> n >> m){ for(int i = 0 ; i < m ; i ++){ ...
2022-03-05 17:11:07
104
原创 拓扑排序 DFS
#include <iostream>#include <vector>#include <queue>#include <map>using namespace std;// n代表有n个顶点 m代表有m条边int n,m;// int G[20] G[0] G[1] G[2]... G[19] -> int// G[0] -> vector<int> 0号顶点所能通向的所有顶点 G[0] = {1,2...
2022-03-05 17:10:09
450
原创 埃氏筛算法
void ANS(){ memset(vis,0,sizeof(vis)); for(ll i=2;i<=1000005;i++){ if(vis[i]==0){ for(ll j=i*2;j<=1000005;j+=i){ vis[j]=1; } } }}
2022-02-28 10:06:16
195
原创 DJSL模板
#include <bits/stdc++.h>using namespace std;#define ll long longconst ll N=100005;ll n,m;ll ans[205];ll vis[205];ll head[100005];struct node{ ll to; ll next; ll w;}edge[N];ll cnt=0;struct cmp{ bool operator()(pair<ll,ll&...
2022-02-28 10:05:11
273
原创 KMP算法
#include <bits/stdc++.h>using namespace std;#define ll long longint p[10005];string s,ss;//寻找next数组void getNext(){ p[0]=0; ll len=0; ll i=1; while(i<ss.length()){ if(ss[len]==ss[i]){ len++; p[...
2022-02-28 10:04:19
63
原创 中后,先中,构建二叉树
#include <bits/stdc++.h>using namespace std;struct node { int val; node* lc; node* rc;};int pre[105];int mid[105];int last[105];void buildTree(node* &rt, int pre2[], int mid2[], int len) { if(len == 0) return ; rt = n...
2022-02-28 10:03:29
258
原创 线段树学习
#include <bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 5;//struct segNode {// int val;// int lazy;//}node[MAXN << 2];////int num[MAXN];////// 以区间和为例//void pushUp(int rt) {// node[rt].val = node[rt << 1].v...
2022-02-28 10:01:48
60
原创 简单的并查集
#include <bits/stdc++.h>#define ll long longusing namespace std;// 数组S,表示每个元素的老大是谁int s[5005];// 初始化函数void init(int x) { for (int i = 1; i <= x; i++) { s[i] = i; }}// 查找函数(查找某个元素他的老大是谁)int find(int x) { // 如果x的老大是自己.
2022-01-26 20:52:50
648
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人