- 博客(26)
- 收藏
- 关注
原创 基环树 各种题目整理
基环树声明基环树定义[题目1. CF Number of Simple Paths求简单路径](https://codeforces.com/contest/1454/problem/E)CF官方题解我的题解分析代码功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowc
2022-01-27 11:36:52 1140 1
原创 Mysql配置
[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=C:\Mysql# 设置mysql数据库的数据的存放目录datadir=C:\Mysql\data# 允许最大的连接数max_connections=200# 允许连接失败的次数,这是为了防止有人从该主机试图攻击数据库系统max_connect_errors=10# 服务器端使用的字符集默认为UTF8character-set-server=utf8# 创建新表时将使用的默认存储引擎
2021-03-21 16:42:09 166 2
原创 POJ1330 dfs + ST模板 LCA
https://vjudge.net/problem/POJ-1330#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXV = 10005;int rmq[MAXV << 1];int n;struct ST { int lg[MAXV << 1]; int dp[MAXV
2020-08-30 12:19:55 142
原创 LCA Tarjan 模板 洛谷 P3379
https://www.luogu.com.cn/problem/P3379#include <bits/stdc++.h>using namespace std;const int MAXV = 5e5 + 5;int F[MAXV];bool vis[MAXV];int ans[MAXV];struct Edge { int to, nxt;}edge[MAXV << 1];int tol1;int he[MAXV];void ad
2020-08-28 23:07:31 128
原创 HDU 1711 KMP 模板题
https://vjudge.net/problem/HDU-1711#include <bits/stdc++.h>using namespace std;const int MAXN = 1e6 + 5, MAXM = 1e4 + 5;int n, m;int a[MAXN], b[MAXM];int nxt[MAXM];void preKMP() { int i, j; j = nxt[0] = -1; i = 0;
2020-08-28 18:52:19 148
原创 POJ 1330 LCA 倍增法 bfs模板
https://vjudge.net/problem/POJ-1330#include <cstdio>#include<cstring>#include <queue>using namespace std;const int MAXV = 10005;const int DEG = 20;struct Edge { int to, nxt;}edge[MAXV << 1];int head[MAXV], tol;int
2020-08-26 15:11:40 160
原创 P3379 【模板】最近公共祖先(LCA) 倍增法 dfs模板
https://www.luogu.com.cn/problem/P3379#include <bits/stdc++.h>using namespace std;const int MAXV = 5e5 + 5;struct Edge { int to; int nxt;}g[MAXV << 1];int head[MAXV], tol;int depth[MAXV], fa[MAXV][20], lg[MAXV];void adde
2020-08-26 11:50:27 174
原创 HDU 2586 LCA模板
好题题解题意倍增法题意这个是一个LCA裸题,题意不难理解倍增法下面来一个讲解LCA非常棒的博客:Author by Morslin然后根据我自己的风格,写出本题的代码#include <bits/stdc++.h>using namespace std;const int MAXV = 4e5 + 5;struct Edge { int to; int nxt;}g[MAXV << 1];int head[MAXV], tol;
2020-08-26 10:34:35 115
原创 POJ 3159 Candies 差分规划 + (SPFA | Dijkstra)
POJ 3159题意题目链接题解Dijkstra代码(经过堆优化)SPFA(用队列会超时, 须手动写栈)题意给n个人派糖果,给出m组数据,每组数据包含A,B,c 三个数,意思是A的糖果数比B少的个数不多于c,即B的糖果数 - A的糖果数<= c 。最后求n 比 1 最多多多少糖果。题目链接POJ 3159题解首先,在读懂题意的情况下,仔细想一想,其实要使节点1与节点n之间的差最大,就需要每两个节点之间的糖果数相差最大。其中,同学为节点,允许相差的最大的糖果数是相应的节点之间的权值。
2020-07-27 20:37:36 150
原创 POJ1511 SPFA Invitation Cards
POJ1511题目连接题意代码题目连接[POJ1511](https://vjudge.net/problem/POJ-1511)题意就是说从节点1出发然后问从节点1出发到其它各点的花费与其它各点到节点1之和最小SPFA可以之结果,但是如果用kuangbin的板子,采用向量(邻接表)的话会超时,应当用链式前向星来作为数据结构如果链式前向星不太清楚,可以参考以下博客[链式前向星](https://blog.csdn.net/weixin_44758733/article/details/10
2020-07-26 22:33:05 146
原创 POJ-2240 SPFA kuangbin模板题 求正负环
目录题目链接题解代码题目链接POJ-2240题解本题和POJ 1860基本是一样的都是求正环,但是这道题由于没有指定起始点和初始金额,所以需要自己手动处理,比如将初始金额设置成1之类的,所以需要将顶点都遍历一遍代码#include <iostream>#include <queue>#include <map>#include <cstring>using namespace std;const int MAXN = 50;struct
2020-07-22 10:35:24 164
原创 POJ3660 floyd奶牛排名
目录题目链接题解代码题目链接POJ3660题解首先,大家肯定都可以想到用flody算法来求解,因为floyd相当于求传递闭包,就是很容易理解cow只按照skill level来排名,如果A战胜B,B战胜C那么A战胜C,可以看到是显然的,其实关键在于如何判断一头牛的排名呢?因为题目中有一句话说给定的数据是不矛盾的,不会存在非法的数据,那就好像我们要知道自己在班级的排名是多少名(总人数知道),那么我们只需要知道排在我们前边的有多少人,排在我们后边的有多少人不就知道我们的名次了么。对应奶牛也是一样的,
2020-07-21 23:09:03 355
原创 POJ-3259 SPFA求负环 kuangbin板子题
kuangbin板子题题意题目链接floydSPFA题意比较明显是一个求负环的板子题同时这道题floyd也可以勉强过(网上的解法)题目链接POJ-3259floyd#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;int n, m, W;const int m
2020-07-21 17:00:53 398
原创 POJ-1860 Currency Exchange货币汇率
目录题目链接题目分析floydspfa题目链接POJ-3259题目分析该题讲在这个小城里有多种货币,并且已知每种货币之间的汇率,现在给你某种货币s和一定量的基金v,现在让你开动脑筋能否通过某种操作让你的本金比之前更多。经过分析,你可以将其看作一个图,货币是结点,边是汇率。仔细想一下就是找到一个正权环路(不一定要经过s), 即使经过这个环路一次,但是可以让你的本金增加一点点就可以了,因为你可以经过很多次的交换让你的资本变到无穷大. 因为n只有100所以用floyd或者spfa都可以floyd#in
2020-07-20 18:47:50 546
原创 POJ-2253 AND POJ-1797 最短路(dijkstra的两种变形)
dijkstra变形题目链接最短路学习POJ2253题目思路代码floyddijkstraPOJ1797题目思路代码题目链接POJ-2253POJ1797最短路学习如果你还不太清楚相关的最短里的集中算法,可以参考以下博客:最短路学习POJ2253题目思路复制一下别人的题意,有两只青蛙和若干块石头,现在已知这些东西的坐标,两只青蛙A坐标和青蛙B坐标是第一个和第二个坐标,现在A青蛙想要到B青蛙那里去,并且A青蛙可以借助任意石头的跳跃,而从A到B有若干通路,问从A到B的所有通路上的最大边,比如有
2020-07-19 12:18:55 1240
原创 ZOJ 2477Magic Cube(打表模拟)
感觉这道题真的是很好的一道题,我比较认可这个方法就是按照读入顺序来对颜色块,进行编码然后预先打表处理出每个面顺逆时针旋转之后的位置,认真一点把表打对,然后可以利用迭代加深搜索出最小的步数。#include <bits/stdc++.h>using namespace std;char readchar() { char ch = 0; while (!isalp...
2020-05-01 08:23:27 318
原创 HDU-3085双向搜索+曼哈顿距离
个人觉得这道题真的不错,以下是题目链接VJ HDU这道题就是其实是说有两个原点(男孩和女孩)和一个幽灵,幽灵可以穿墙也就是说幽灵在该地图上畅通无阻。题目描述的幽灵的行动其实就是一个曼哈顿距离。以一个简单的例子来介绍曼哈顿距离e.g. 打印一个菱形。比如说以点(r, c))中心打印一个边长为length的菱形以1代表格点。以下是代码#include <iostream>#...
2020-04-26 21:53:47 261
转载 图的存储结构之邻接表(详解)
图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。 对于...
2020-04-26 10:44:33 1345
原创 Til the Cows Come Home(最短路, Dijkstra算法, spfa(bellman ford)算法, Floyd算法, 深搜DFS)
//TLE 版本#include <iostream>#include <vector>#include <algorithm>#include <cstdio>#include <cstring>#include <set>#include <climits>//#include <bits...
2020-04-25 16:50:52 585
原创 POJ--2676--Sudoku
这道题暴力枚举就可过,还是利用处理n皇后的时候的递归思路来解。博客如下n皇后题目链接vjudge每次去从’1’到’9’枚举,然后如果不满足情况就直接剪枝,然后回溯到上一个结点,继续枚举。如果自己写出了bug那么还是直接选择一款比较好用的IDE去调吧.同时,如果在递归的过程当中已经找到了答案,那么就直接可以直接退出所有的,输出答案。我采用的是用一个bool型flag变量来表明该信息的。详看注...
2020-03-17 14:37:43 406
原创 n皇后(回溯和剪枝)--HDU2553
问题简介:在棋盘上放置8个皇后,使它们不同行,不同列,不同对角线。问有多少种合法的情况?N皇后问题是8皇后问题的扩展。文章目录问题简介:Key1如何递归?Key2如何剪枝?其实n皇后问题就是对所有的皇后进行枚举,我们采用递归的写法,其中有两个技巧就是回溯和剪枝。当我们发现当前情况已经不满足时,可以将这棵搜索树直接在此处剪短,然后回溯到上一个结点,继续进行枚举。Key1如何递归?每...
2020-03-17 12:20:18 1235 1
原创 HDU-2612
这到题的思路就是使用两次bfs,用二维数组保存从起点到不同位置的时间,最后看两个人是否都能到达同一个kfc,如果能够达到同一个,就不断更新答案.题目链接#include <cstdio>#include <queue>#include <cstring>#include <utility>#include <climits>...
2020-02-19 09:53:25 778
原创 POJ-1182-食物链-带权并查集-并查集的经典应用
首先说明这是并查集的一个经典应用,真的是一道非常不错的题目。以上是题目的描述,首先这是一个并查集的题目所以要先熟练掌握并查集(可以参考以下链接和题目):https://blog.csdn.net/weixin_44758733/article/details/104154271POJ 2524 添加链接描述POJ 1611 添加链接描述#总体思路:如果两个结点确定了关系,则将这两个...
2020-02-08 17:16:50 556
原创 POJ-2236(并查集)
这道题就是不断修复电脑,然后根据输入的命令不断进行更新,每次遍历已经修好的电脑,如果发现距离小于限定的距离,就加入到并查集中。#include <cstdio>#include <cmath>#include <iostream>#include <algorithm>using namespace std;int N,d,tol;c...
2020-02-04 11:57:24 344
原创 并查集
通过对并查集的学习发现,这是一个非常有用的高级数据结构,可以利用并查集来实现图中的最小生成树的Kruskal算法,非常有用。并查集用于处理不相交集合的合并问题,也可以看成对不同的连通分量之间的处理。例如以下问题: 1.一个城市中有n个人,他们属于不同的帮派 2.已知这些人的关系,例如1号,2号是朋友,1号,3号也是朋友,那么他们就属于同一个帮派。 用并查集就可以和你简介的表示这个关系即相互...
2020-02-03 12:47:34 194
原创 FZU2150(双起点bfs->多起点)
题目大意:给出一个height*width的图,’#‘表示草坪,’.'表示空地,然后可以选择在任意的两个草坪格子点火,火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧所有的草坪花费时间最小?大致思路:重点是和单起点bfs差不多,唯一不同的就是在刚开始入队的时候将两个起点都入队。可以说是对两个不同根节点的树进行搜索吧(两棵树根节点可相同可不同,枝叶可交叉可不交叉),主要思路就是这个样子...
2019-08-18 11:25:36 1061
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人