- 博客(17)
- 收藏
- 关注
原创 待复习知识点梳理
一 基础算法:1、单调队列(琪露诺)2、STL3、离散化4、求逆元二、初级算法1、模拟、递归、搜索、动态规划三、高级算法1、数据结构:线段树2、字符串:hash、trie树3、图论:Kruskal、floyd、dijkstra、SPFA、拓扑排序、差分约束、分层图、LCA、tarjan、点、边双4、数论:exgcd、组合数取模5、动态规划:区间DP、树形DP、状压DP、概率...
2019-10-15 12:32:11 183
原创 1025笔记
1.浇草S[i].a=x-sqrt(r - (w/2));S[i].b=s+sqrt(r-(w/2));勾股定理求这个矩形边缘到中心的距离按S [i].a 从小到大快排从左到右依次处理每个区间2.将n个正整数连成一个最大的整数弱智贪心,按字典序大小排序即可。bool cmp(string x,string y){ return x+y>y+x;}3.Pro...
2019-10-25 14:55:58 104
原创 1024笔记
1.mode出现的数超过n/2次,把每个数和新出现的数一一抵消2.队爷的新书排序后扫描端点,左端点cnt++,右端点更新ans,cnt–(优先左端点)3.在n个区间中找最多的互不覆盖的区间按右端点排序扫4.n个小区间,求最少多少个小区间可覆盖完一个大区间按左端点排序,在之后左端点小于它右端点的区间中选右端点最大的一个区间5.n个点,m个区间覆盖,区间总长最小参考牛棚问题,贪心、...
2019-10-24 14:17:22 393
原创 单调队列复习
单调队列1.适用情况需要快速求出区间最大/最小值的情况(常用于dp优化)/有单调的题2.原理/思路每次有元素进队时,找到合适的队尾接上,保证队列单调性。(删除后面不必要的一段)同时,维护可用区间,及时去头。3.性质一般,在动态规划的过程中,单调队列中每个元素一般存储的是两个值:1.在原数列中的位置(下标)2.他在动态规划中的状态值(而单调队列则保证这两个值同时单调)4.模板题参...
2019-10-21 20:04:48 114
原创 树形dp_1019考试 toy题解
玩具 (toy.pas/c/cpp)【题目描述】一天小D去超市买回来了一个玩具,这个玩具是由n个球和一些支架组成, 每一个支架连接着两个不同的球,通过支架每两个球之间的简单路径有且 只有一条,如果某一个支架的两端的球全被拿走,那么这个玩具就会垮掉 。小D无聊的时候开始拿走球,问,他有多少中拿球方案,使玩具不垮。【输入数据】输入文件名为toy.in。 第一行一个数n 表示球的个数 接下来若干...
2019-10-20 20:04:31 174
原创 线段树板子
#include<bits/stdc++.h>#define lc (rt<<1)#define rc (rt<<1|1)using namespace std;typedef long long ll;const int maxn = 1e5 + 10;struct point{ int l,r; ll lazy1,lazy2,num;}t[...
2019-10-15 11:58:45 76
原创 Dijstra
给定边和边权求出第一个点到所有点的最短距离#include<bits/stdc++.h> using namespace std;int n,m,s,t;const int inf=0x7fffffff;int dis[10010];vector<int> g[10010],e[10010];struct Node{ int u,d; Node(){}...
2019-08-31 10:34:59 272
原创 Kosaraju算法
Kosaraju算法题目思路:建一个反图,从最后的强连通分量遍历。如果所有点都被访问过了,那么最后一个强连通分量中点的个数就是答案,否则没有。#include<bits/stdc++.h>using namespace std;#define maxn 10010int m,n,nl,mmp,sum,cmp[maxn];vector<int> g[maxn],...
2019-08-21 11:42:34 250
原创 汉诺塔问题
(越来越觉得递归是一种无赖的算法)嗯,进入正题汉诺塔问题中,要想将n个盘子在B的辅助下从A移动到C,就要先将n-1个盘子在C的辅助下从A移动到B;而要想将n-1个盘子在C的辅助下从A移动到B,就要先将n-2个盘子在B的辅助下从A移动到C(脑补一下画面,真美)。。。。。然后呢,递归就开始了,上代码#include<bits/stdc++.h> using namespace st...
2019-07-06 18:56:53 73
原创 归并排序
当我知道二分还能用来排序时,终于理解了扫一眼算法和真正算法的区别其实归并排序的思想很简单,可是代码对蒟蒻来说有一定难度emm那么先讲思路吧。怎么说呢,就是把要排序的数组不断分直到无法分为止,然后2个2个合并在合并的过程中就实现了排序,真神奇对于这个代码,我的内心是十分抗拒的,不过还是附上吧(敲代码不容易啊)#include<iostream>using namespace...
2018-10-31 22:51:27 85
原创 快速排序
在正式开始前,先给大家讲个鬼故事,叫作我不会用sort是的,相信你的眼睛,你没有看错(皮一把)那么,开始写快排吧。基本思想:一趟排序将待排记录分2部分,一部分的关键字均比另一部分小,再分别对这两部分排序是不是有点懵,没关系的,我们来个具体一点的首先从中间选一个数记为支点(mid),然后将关键字小于它的都扔在左子序列中,反之则扔在右子序列中这就是一趟快速排序了(真聪明)。是不是还是...
2018-10-30 23:22:24 95
原创 各种排序算法
首先上最简单的冒泡法简单易写不过容易TO,3位数就不要写了直接上个伪代码好了int l,a[2000]={0};for(int i=1;i<l;i++)for(int j=i+1;j<=l;j++)if(a[i]<a[j]) swap(a[i],a[j]);那么我们想一想优化方案首先可以出现提前排好的情况,可是电脑并不知道那么只要有一次循环没有交换,就说明可以b...
2018-10-28 22:57:30 137
原创 高精度加法
从最简单的算法理起,高精度#include#includeusing namespace std;string aa,bb;//要相加的两个数int a[100]={0},b[100]={0},c[100]={0};//a,b为相加的数,c为结果int la,lb,lc=0;//长度int ...
2018-10-28 22:43:40 111 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人