1.并查集:要注意一个问题,父节点的指向要唯一,不能中途突然改变某个父节点,并且改变之后从一个集合中的集合变成了另一个集合中的元素。 2.输入输出元素比较多,并且每个元素又有某种联系的话,优先使用结构体。 3.保存图的时候,可以选用vector和链式前向星。 4.使用bfs的时候,要避免某个点循环重 ...
分类:
其他好文 时间:
2019-03-28 16:54:36
阅读次数:
171
#include<bits/stdc++.h>using namespace std;int st[1000007];int top;int s[1000007],t[1000007];int mx[4000007];int sum[4000007];int head[1000007],to[200 ...
分类:
其他好文 时间:
2019-03-28 00:28:27
阅读次数:
143
Dijkstra+ 链式前向星+ 优先队列 Dijkstra算法 Dijkstra最短路算法,个人理解其本质就是一种广度优先搜索。先将所有点的最短距离Dis[ ]都刷新成∞(涂成黑色),然后从起点x (Dis[x]= 0, Dis[]值最小 )开始查询;先将x 加入(涂成灰色),对x 的所有边进行遍 ...
分类:
其他好文 时间:
2019-03-18 13:42:56
阅读次数:
180
int n; int h[MAX_N], nxt[MAX_N * MAX_N], to[MAX_N * MAX_N], val[MAX_N * MAX_N], tot; void Make_Edge(int u, int v, int w) { to[++tot] = v; val[tot] = w... ...
分类:
其他好文 时间:
2019-03-17 01:08:38
阅读次数:
144
#178. 「2019冬令营提高组」全连 显然我们可以得出一个$O(n^2)$的dp方程 记$f(i)$为取到第$i$个音符时的最大分数,枚举下一个音符的位置$j$进行转移。 蓝后我们就可以用树状数组存下$f(i)$的最大值,每次用$logn$的复杂度每次询问$j=1 \rightarrow i-t ...
分类:
编程语言 时间:
2019-02-24 17:24:10
阅读次数:
182
#include #include #include #include #define FORa(i,s,e) for(int i=s;i=e;i--) #define gc getchar()//pa==pb&&(pb=(pa=buf)+fread(buf,1,10000,stdin),pa==p... ...
分类:
其他好文 时间:
2019-02-14 20:50:39
阅读次数:
196
#include #include #include #include #define FORa(i,s,e) for(int i=s;i=e;i--) #define File(name) freopen(name".in","r",stdin),freopen(name".out","w",st... ...
分类:
其他好文 时间:
2019-02-14 20:44:58
阅读次数:
311
题意:n个人,m个信息,每行的信息是3个数字,A,B,C,表示B比A多出来的糖果不超过C个,问你,n号人最多比1号人多几个糖果 解题关键:差分约束系统转化为最短路,B-A>=C,建有向边即可,与dijkstra中的d[v]>=d[u]+C相同,即可求解。 ...
分类:
其他好文 时间:
2019-02-04 08:56:25
阅读次数:
157
前向星一种数据结构,以储存边的方式来存储图。构造方法如下:读入每条边的信息,将边存放在数组中,把数组中的边按照起点顺序排序(如果是链式存储则不用排序),前向星就构造完了。 1. 非链式 首先通过建立数组存储边; 然后对数组按起点从小到大排序; 用len[i]来记录所有以i为起点的边在数组中的存储长度 ...
分类:
其他好文 时间:
2019-02-03 23:26:46
阅读次数:
230
8102年,我接触到了一个奇怪~~鬼畜~~的数据结构: 前向星!!! ~~貌似与题目跑偏了~~ 9102年,又接触到一个更加~~形容词省略~~的数据结构:线段树。 ~~奇迹般繁琐~~ 于是在第二天的模拟赛中挂掉了。(线段树模板只差3个字母,QWQ); 然后在第三天遇到了一个~~繁琐至极~~的数据结构 ...
分类:
其他好文 时间:
2019-02-01 18:51:47
阅读次数:
190