自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 CF1027D Mouse Hunt(topo总结)

题意:有n个房间和若干只老鼠(该题可直接当做一只处理),给定n值,以及每个房间来老鼠后下一个会去的房间号,还给了每个房间布置陷阱所需花的成本,求能让老鼠最终落网的布置陷阱的最小成本本题需要用的数据结构就是基础的图论,用个next数组存下个邻接节点,然后在线存好数据后,我们需要注意,有n个节点也有n个边,那必然会有回路,其余是链的形式,我们用topo排序挨个去掉入度为0的链,剩余环(不可能剩多余链的),再用dfs统计最小值,即为ansAC代码#include<cstdio>#include

2020-07-31 23:37:29 235

原创 待学

还没总结过的点,放这指定鞭策一下自己1、数论2、差分约束3、spfa4、最小生成树

2020-07-30 09:12:27 113

原创 并查集总结

并查集一、定义并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题集合定义方法:“代表元法”,每个集合选择一个节点作为整个集合的代表,最根部的父亲节点二、基本操作Find——查询一个元素属于哪一个集合Merge——把两个集合合并成一个大集合三、路径压缩与按秩合并①路径压缩将访问过的节点直接指向树根,均摊复杂度int find(int x) { return x == fa[x] ? fa[x] : fa[x] = find(fa[x]); }按秩合并“秩”:树的深度(

2020-07-28 21:50:12 148

原创 克鲁斯卡尔

克鲁斯卡尔(加边法):先取最小的边,在判断是不是一个集合(不是舍去,是加上)普里姆(加点法):先已经判断了不是一个集合,再从不是的集合中找出最小的边把点加入,最后更新(再取,再更新。。)都是加到n-1条边停止(n个点最少由n-1条边连通),另外,Kruskal不用考虑重边(并查集自动取舍),Prim需要考虑重边(不考虑必错!)上板子,方便查阅#include <iostream>#include <string>#include <algorithm>#in

2020-07-27 11:55:44 156

原创 Bellman-Ford(贝尔曼-福特)(单源最短路径,比迪杰斯特拉增加了能解决负边权)

Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法可能就会失效,求出的最短路径就可能是错的。这时候,就需要使用Bellman-Ford算法来求解最短路径,Bellman-Ford算法的流程如下:给定图G(V, E)(其中V、E分别为图G的顶点集与边集),源点s,1.数组Distant[i]记录从源点s到顶点i的路径长度,初始化数组Distant[n]为, Distant[s]为0;2.以下操作循环执行至多n-1次,n为顶点数:

2020-07-25 01:41:47 202

原创 迪杰斯特拉(单源最短路经)&弗洛伊德(任意两点最短路径)

总结一下两个最短路径的算法,这个博客总结的挺好,写的好的地方我直接贴过来了https://blog.csdn.net/daaikuaichuan/article/details/80586408迪杰斯特拉一、定义描述Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法的时间复杂度为O(N^2),比如下图可求1号节点到其余所有节点的最短路径:二、算法思想设G=(V,E)是一

2020-07-24 22:48:15 655

原创 线段树的原理与模板(上)

昨天训练第一次做到了线段树的题,琢磨了两个小时代码,大概看懂了,今天特地来整理总结记录一下原理与模板昨天看的一篇很不错的博文,也推荐给大家:https://blog.csdn.net/iwts_24/article/details/81484561下面都是自己语言描述整理的首先为什么要使用线段树?假设医院有8种药,每次开药进药都会引起响应库存数量的变化,也需要记录方便管理,我们都会想到用数组去存储int a[8]={1,2,3,4,5,6,7,8};如果进药(比如都是八盒),那就是很常规的O

2020-07-24 18:54:39 160

原创 牛客暑假训练第四场F题

题意:依次给出AC,AD,BC,BD的边长,要求判断是AB//CD还是AB//DC根据三角形两边之和大于第三条边,可得中间交叉的两条边一定大于旁边两条边,根据这判断一下即可(怎么这么简单,我还分情况讨论了半天…输在了数学上了orz)上代码#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#include<cstring>#inclu.

2020-07-21 11:20:48 73

原创 牛客暑假训练第四场B题

题意:提供一个n和一个c求fc(n)的值由题目的数学表达式,易得n每整除变小一次,就乘一个c,一直变成1为止,即为max值,自己做是一层一层的做,后来队友告诉要用素数筛选和合数分解的模板,就ac了因为根据唯一分解定理,任何一个大于1且不为质数的自然数,都能分解成有限个质数的乘积上代码#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<cstdio>#include<string>#incl.

2020-07-21 11:03:22 202

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除