自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chillstepp

ChillstepGoingOn

  • 博客(25)
  • 收藏
  • 关注

原创 数据结构笔记

数据结构笔记绪论概念范围:数据>数据元素>数据项。性质相同的数据元素集合叫做数据对象。数据元素时数据的基本单位。数据项是是数据的不可分割的最小单位。逻辑结构: 1.集合结构 2.线性结构 3.树结构 4.图结构或网状结构逻辑结构也可分为: 线性结构和非线性结构存储结构分为 顺序存储结构 和 链式存储结构计算复杂度时要注意一点,如果操作的次数可以得出具体数,比如for循...

2020-05-04 16:11:11 358

原创 2019牛客暑期多校训练营(第一场)

2019牛客暑期多校训练营(第一场)A-Equivalent Prefixes(单调栈,思维,笛卡尔树)#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;int ans1[maxn],ans2[maxn];int val1[maxn],val2[maxn];struct node{ ...

2019-07-19 15:05:01 188

原创 BZOJ 1531[POI2005]Bank notes 多重背包(dp+二进制拆分/单调队列优化)

题目链接Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,…, bn. 但是每种硬币有数量限制,现在我们想要凑出面值k求最少要用多少个硬币.Input第一行一个数 n, 1 <= n <= 200. 接下来一行 n 个整数b1, b2,…, bn, 1 <= b1 < b2 < … &...

2019-07-13 16:40:23 212

原创 ACM--思维杂题(构造)

HDU-1214 圆桌会议题目链接Problem DescriptionHDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也可以进来体会一下哦:),在一天在讨论的时候,Eddy想出了一个极为古怪的想法,如果他们...

2019-07-05 20:11:51 1335

原创 ACM-并查集模板+做题记录

#define N 105int pre[N]; //每个结点int rank[N]; //树的高度//初始化int init(int n) //对n个结点初始化{ for(int i = 0; i < n; i++){ pre[i] = i; //每个结点的上级都是自己 rank[i] = 1; //每个...

2019-06-29 19:14:32 141

原创 ACM——图论Tarjan算法 【邻接表版本/链式前向星版本】

图论-Tarjandfn[u]表示dfs时达到顶点u的次序号(时间戳),low[u]表示以u为根节点的dfs树中次序号最小的顶点的次序号,所以当dfn[u]=low[u]时,以u为根的搜索子树上所有节点是一个强连通分量。 先将顶点u入栈,dfn[u]=low[u]=++idx,扫描u能到达的顶点v,如果v没有被访问过,则dfs(v),low[u]=min(low[u],low[v]),如果v在栈...

2019-05-25 20:07:16 606

原创 克鲁斯卡尔/kruskal算法 -最小生成树

#include<bits/stdc++.h>using namespace std;int n,m,tot=0,k=0;int fat[200010];struct node{ int from,to,dis;}edge[200010];bool cmp(const node &a,const node &b){ return a.di...

2019-05-22 21:56:26 131

原创 迪杰特斯拉算法+堆优化

/*O(eloge)堆优化dj算法,在n的数量级>=1e5时必须采用这种堆优化+邻接表方式*/struct node{int p, w;node(int a, int b):p(a), w(b){}bool operator< (const node& b) const{return w > b.w;}};vector g[N];priority_...

2019-05-16 22:33:32 947

原创 数据结构模板——线段树

线段树讲解线段树,就自然是树形结构了,并且是一颗二叉树,一颗维护长度为8的序列的线段树长下面这个样子。建树void build(int l,int r,int k){ tree[k].l=l;tree[k].r=r; if(l==r)//叶子节点 { scanf("%d",&tree[k].w); return ; ...

2019-05-05 18:05:52 153 1

原创 AHU算法课-DP动态规划

A-最长上升子序列入门dp题,之前写过这道题的题解 点击进入这道题出的很简单,O(n2)就可以过。但请思考如何降低复杂度,本题可以将复杂度下降到O(nlogn) , 方法是:通过因为是最长上升子序列,具有着单调性,所以通过二分查找(O(logn))代替原来的遍历查找(O(n))。这样复杂度就下降到了O(nlogn)。O(nlogn)解法O(n2)解法:#include <bits/...

2019-04-24 18:17:48 765

原创 ACM-欧拉筛

线性筛,复杂度为O(n)。与埃氏筛相比,不会对已经被标记过的合数再进行重复标记,故效率更高。欧拉筛将合数分解为 (最小质因数 * 一个合数) 的形式,通过最小质因数来判断当前合数是否已经被标记过。#include <bits/stdc++.h>using namespace std;const int MAXN=10000; / / 从2->maxn范围内质数in...

2019-04-01 18:40:13 969

原创 ACM-矩阵快速幂

struct Mat{ LL m[101][101];};//存储结构体Mat a,e; //a是输入的矩阵,e是输出的矩阵Mat Mul(Mat x,Mat y){ Mat c; for(int i=1;i<=n;++i){ for(int j=1;j<=n;++j){ c.m[i][j] = 0; ...

2019-04-01 17:06:29 256

转载 ACM-乘法逆元

乘法逆元写在前面:本文借鉴了 正义小学生 的博客(1)何为乘法逆元?在(mod p)的意义下,如果a*a’ = 1,那么我们就说a’是a的逆元。同时容易理解:a也为a’的逆元。有乘法逆元的前提是 :a,p互质,若a,p不互质,也就意味着不存在a的乘法逆元。(2)乘法逆元的性质:本文只选出最重要的几个性质进行说明:1.存在唯一性:对于a来说,如果他有逆元,则它只能有一个逆元。证明:...

2019-03-31 20:29:38 402

原创 ACM- 欧几里得算法(gcd)/扩展欧几里得算法(exgcd)

写在前面:本文参考了 leader_one 的文章欧几里得算法(gcd):介绍:欧几里得算法(也称辗转相除法)是目前已知求最大公约数的最快通用算法,具有代码复杂度低、易理解、用途广等诸多优点,用于求a,b的最大公约数。算法实现:复杂度O(log n)while(b!=0){ r = a % b; a = b; b = r;} 最终的a即为原a,b最大公约...

2019-03-31 17:17:28 524

原创 ACM/STL-容器set的介绍 / 各种操作(代码举例) / 应用

Set容器写在前面:本文借鉴了 一只会疼人的猫的文章C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操...

2019-03-26 21:49:20 437 1

原创 ACM/STL-模板类Pair详解

Pair类模板:template<class T1,class T2>struct pair参数:T1是第一个值的数据类型,T2是第二个值的数据类型。作用:将两个元素(可以是不同类型的元素)整合为一种。用法:1.怎么构造这样一个类型(定义方法):方法1:pair <int ,double>p1;pair<int ,int >p2;pair...

2019-03-26 17:26:27 277

原创 ACM/STL-lower_bound(),upper_bound(),binary_search()

二分查找的函数有 3 个:1.lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置。2.upper_bound(起始地址,结束地址,要查找的数值) 返回的是数值 最后一个 出现的位置。注意:以上这种查找某个数的用法的前提是:在这个你所查找的容器中一定含有你所要查找的数(具体原因下面会写到)3.binary_search(起始地址,结束地址,要查找的...

2019-03-25 16:48:08 147

转载 ACM常用操作-离散化处理

离散化处理写在前面:离散化是对一堆元素进行操作,通过改变他们的大小,但不改变他们的大小关系,这种做法往往可以节省空间,减低时空复杂度。本文参考博客:HolseLee举个例子理解离散化究竟是什么操作:比如一个数组{6,7,11,12},保证他们两两之间的大小关系即可,那么通过离散化他得到的新数组就是{1,2,3,4}。当然离散化的结果不知这一种,要根据题意来具体分析要求什么样离散化的结果。...

2019-03-25 16:11:12 1237

原创 ACM/ STL-unique()函数

unique()函数作用:unique()的作用是去掉容器中相邻元素的重复元素(数组可以是无序的,比如数组可以不是按从小到大或从大到小的排列方式)。使用方法:unique(初始地址,末地址);这里要注意的是:1.unique()函数返回值不是去重后容器中元素的数量,而是去重后容器中的末地址。也就是说,如果想得到去重后容器中元素的数量的话还要减去初始地址。2.unique函数在去重的时候不...

2019-03-25 15:10:46 288

原创 板子

LIS(最长上升子序列) 普通dp - 复杂度O(n²)#include &lt;bits/stdc++.h&gt;using namespace std;const int maxn = 103,INF=0x7f7f7f7f;int a[maxn],f[maxn];int n,ans=-INF;int main(){ scanf("%d",&amp;n); ...

2019-02-24 17:31:43 171

原创 最长上升子序列 (LIS) ----O(n²) DP解法

最长上升子序列 (LIS)定义:最长上升子序列(Longest Increasing Subsequence,LIS),在计算机科学上是指一个序列中最长的单调递增的子序列。首先要区分子序列与子串的区别:简单来说,子串是连续的一段,而子序列是可以不连续的。为方便理解,列举一组数据进行说明:2 7 1 5 6 4 3 8 9列出一个数组dp[ 9 ]存储他们的状态。dp[i]的含义为:在选第...

2019-02-24 16:18:25 243 1

原创 POJ 4151/北大百练 4151 电影节 题解(两种方法)贪心算法基础

POJ4151 电影节总时间限制:1000ms内存限制:65536kB描述:大学生电影节在北大举办! 这天,在北大各地放了多部电影,给定每部电影的放映时间区间,区间重叠的电影不可能同时看(端点可以重合),问李雷最多可以看多少部电影。输入:多组数据。每组数据开头是n(n&lt;=100),表示共n场电影。接下来n行,每行两个整数(0到1000之间),表示一场电影的放映区间n=0则...

2018-12-10 20:36:35 3106 3

原创 2018AHU新生赛Panelatta与华容道题解

2018AHU新生赛Panelatta与华容道题解题目描述Panelatta很喜欢玩益智游戏,今天,他又开始玩一个古老的游戏:华容道!但是Panelatta不喜欢原版的华容道,所以他对此做了一些修改。给定一个由 n2n^{2}n​2​​ ( n 为奇数)个方格组成的 n⋅n 方阵,在 n⋅n−1 个方格中填入数字 1 ~ n⋅n−1 ,并将剩下的一个方格留空。在游戏过程中,可以将空置的方...

2018-12-03 13:56:43 862

原创 kuangbin带你飞-专题一 简单搜索题解 持续更新

题解:1.棋盘问题:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n &lt;= 8 , ...

2018-11-28 15:38:54 297

原创 HDU2065红色病毒(递归数列数学题) 基础方式详细题解

HDU2065 红色病毒Problem Description医学界发现的新病毒因其蔓延速度和Internet上传播的"红色病毒"不相上下,被称为"红色病毒",经研究发现,该病毒及其变种的DNA的一条单链中,胞嘧啶,腺嘧啶均是成对出现的。现在有一长度为N的字符串,满足一下条件:(1) 字符串仅由A,B,C,D四个字母组成;(2) A出现偶数次(也可以不出现);(3) C出现偶数次(也可...

2018-10-31 18:33:51 874

空空如也

空空如也

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

TA关注的人

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