自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 朴素贝叶斯分类

一、分类问题     已知集合和,确定映射规则y = f(x),使得任意有且仅有一个,使得成立。其中C是类别集合,I是项集合,f是分类器。     分类算法的任务就是构造分类器。     分类算法的内容就是给定特征,得出类别二、朴素贝叶斯分类    1. 贝叶斯公式:                  A: 特征,  B: 类别P(B|A)即为我们要的东西   ...

2019-01-22 20:12:05 151

原创 poj2255

题目链接题意:给一棵树的先序遍历和中序遍历,求它的后序遍历思路:先序遍历提供每一棵子树的根结点,利用中序遍历找出左子树,同时即可得到右子树,然后递归两子树,最后输出根结点,即可得到后序遍历#include<iostream>#include<cstdio>#include<cstring>using namespace std;void...

2018-09-24 23:15:19 345

原创 逆元

1.单位元:当他与其他元素结合时,并不会改变那些元素。若a*e=a,e称为右单位元;若e*a=a,e称为左单位元,若a*e=e*a=a,则e称为单位元2.逆元:一个存在单位元素e的代数系统 ,如果对S内的元素a存在 ,使得 ,则称 为a对运算“ ”的左逆元素,亦称左逆元。 若有 ,则称 为a对运算“ ”的右逆元素,亦称右逆元。3.求解公式:(a/b)%m:      设c是b的逆元,则有b*c≡1...

2018-04-29 23:54:18 2012

原创 UVA 12096(几种容器的使用)

题目题意:有几种操作(如下图),然后给定一些操作,问最后栈顶的集合中有几个元素AC代码:#include<iostream>#include<cstdio>#include<string>#include<set>#include<stack>#include<map>#include<vector>

2018-04-28 15:19:36 186

原创 矩阵快速幂

题目:Given a number n, you should calculate 123456... 11121314... n module 11InputA single line with an integer n (0 < n ≤ 1018)OutputOutput one integer, 123456... 11121314... nmodule 11Note思路:首先写出递推...

2018-04-21 16:27:09 116

原创 强联通+拓扑+最长链

题意:有向图,n个点,m条边,从一个点出发,到达另一个点,求最多经过几个点。思路:首先想到的肯定就是用强联通缩点,缩完点之后,可以得到一个有向无环图,这时候就是要求这个图中的最长链。开始的想法是从每个入度为零的点开始DFS,但是超时了,现在了解可以用DP做。    有向无环图的最长链:用dp[u]表示从当前点出发的最链(包括这个点),那么状态转移方程就是dp[u]=max(dp[u],dp[v]+...

2018-04-19 15:46:47 556

原创 取模最短路

题意:给你一个大小为n的集合S,集合里有n个互不相同正整数.有q个询问,每次询问是否能选择S中的一些数字 ( 同一个数字可以选择多次,也可以任何数字都不选),使它们相加的和为m.思路:因为给的数据很大,所以不能用背包。那么我们使用取模最短路的思想。假设我们是对a[1]进行取模。如果说我们得到了所有模a[1]余r的数中的最小的一个,记为dis[r],那么如果有数模a[1]余r,那么只要这个数大于di...

2018-04-19 14:59:22 535

原创 HDU 3374(最小表示法)

题目链接题意:给几个字符串,求每个字符串的最小循环表示,最大循环表示(输出序号最小的)以及出现的次数。思路:前面两个直接用模板可求解。出现次数实际上就是问循环节的个数,这时我们可以想到KMP算法中的nextval数组。AC代码:#include<iostream>#include<cstdio>#include<cstring>#include<al...

2018-04-08 23:59:38 381

原创 HDU 2222(AC自动机)

题目链接题意:求n个子串在一个字符串中出现的总次数注意:子串可能出现相同的情况,所以应该统计以每个结点结束的子串的个数。还有就是访问一个结点过后,应该将该结点的结束标记去掉,不然会出现重复加了很多次的情况。(还有每次结束后,记得把字典树销毁,可能爆内存)AC代码:#include<iostream>#include<cstdio>#include<cstring&...

2018-04-07 20:47:24 251

原创 HDU 2896(AC自动机)

原题链接题意:有N个病毒特征码(编号从1——N),M个网站源码(编号从1——M)。问每一个网站源码中含有哪些病毒特征码,输出特征码编号(没有就不输出)。最后输出总共有多少个网站有病毒。思路:AC自动机裸题,主要是要理解AC自动机的思想,他是一种解决多模式匹配的算法,fail指针的作用类似于KMP中的nextval数组的作用,是当前位置失配后,下一个字符比较的位置。   大佬讲解(结合图片中的例子看...

2018-04-07 19:46:25 183

原创 模板(筛法、欧拉函数)

1.筛法求maxn内所有素数#define maxn 50000bool iscomp[maxn]={0};int p[maxn]={0}; //存素数int pcnt=0; //素数个数void seive(){ for(int i=2;i<maxn;i++) { if(!iscomp[i]) //没被筛走的就是素数 p[pcnt++]=i; f...

2018-03-29 11:48:04 152

原创 poj 1061 (扩展欧几里得)

原题链接思路:根据题意列方程,最后化简可得                  (m-n)*a-L*k=y-x   (其中a为跳的次数,k为相差的圈数)令b=m-n,c=-L,则化为解方程b*a+c*k=y-x。题目要求的就是a的最小整数#include<iostream>#include<cstdio>using namespace std;long long x,...

2018-03-29 11:36:09 101

原创 hiho一下 194周(高斯消元)

题目链接题目1 : 图像算子时间限制:10000ms单点时限:1000ms内存限制:256MB描述在图像处理的技术中,经常会用到算子与图像进行卷积运算,从而达到平滑图像或是查找边界的效果。假设原图为H × W的矩阵A,算子矩阵为D × D的矩阵Op,则处理后的矩阵B大小为(H-D+1) × (W-D+1)。其中:B[i][j] = ∑(A[i-1+dx][j-1+dy]*Op[dx][dy]) |...

2018-03-22 18:54:56 142

原创 hihoCoder1195 1196(高斯消元,异或方程组)

高斯消元     异或方程组1.高斯消元我们把每一件商品的价格看作是x[1]..x[n],第i个组合中第j件商品数量记为a[i][j],其价格记作y[i],则可以列出方程式:a[1][1] * x[1] + a[1][2] * x[2] + ... + a[1][n] * x[n] = y[1]a[2][1] * x[1] + a[2][2] * x[2] + ... + a[2][n] * x...

2018-03-22 17:36:50 366

原创 HDU 3068(回文串 Manacher)

原题链接题意:就是寻找给定字符串的最长回文串的长度思路:Manacher算法直接用就可以了,算法讲解AC代码:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define maxn 110005using namespace std;cha...

2018-03-21 23:20:08 118

原创 HDU 6153(KMP)

题目链接题意:求S2串从i开始到结尾的子串在S1串中出现的次数,用次数乘子串长度,最后把所有的相加思路:利用KMP的方法,在KMP时,我们可以记录从0开始长度为i的子串出现的次数,这就需要我们先把两字符串倒置。但是这个记录是不全的,因为我们不是从头开始进行比较。我们想想KMP算法中,每一次需要跳转的时候,是从nextval[j]开始继续比较,假如说能够匹配,那我们就继续比了,也就是前面的nextv...

2018-03-20 19:16:59 209

原创 HDU 1711(KMP)

题目链接直接套板子就行,不过这题对于我这个C版C++选手来说,太坑了,输入输出不能使用%lld,直接WA……最后把所有的输入输出全改成cin,cout才AC。。。记起来了还有一点,数组名不能取成next,否则CE。。。(我太菜了)直接上代码:#include<iostream>#include<cstdio>#include<cstring>using ...

2018-03-19 23:07:46 131

原创 HDU 1671(Trie树)

题目链接题意:t组测试,每组n个数,每个数都不能是其他数的前缀思路:简单的Trie。但是因为是多组测试,一定一定一定一定要把每次的树free掉AC代码:#include<iostream>#include<cstdio>#include<cstring>#include<malloc.h>using namespace std;type...

2018-03-19 20:28:54 158

原创 HDU 2063(最大流Dinic)

题目链接:过山车RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做pa...

2018-03-15 23:28:50 209

原创 整理几个好用的函数,容器

1.二分查找upper_bound 和lower_bound两函数是在一个左闭右开的有序区间里进行二分查找,upper_bound返回的是被查序列中第一个大于查找值的指针,lower_bound则是返回的是被查序列中第一个大于等于查找值的指针例: vector<int>::iterator it = lower_bound(v.begin(), v.end(), 3); //返回ve...

2018-03-13 23:00:08 188

原创 计算机视觉(笔记)

    计算机视觉就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。    机器视觉需要图象信号,纹理和颜色建模,几何处理和推理,以及物体建模。实现图像理解是计算机视觉的终极目标。    物理是与计算机视觉有着重要联系的另一领域,计算机视觉关注的目标在于充分理解电磁波——主要是可见光与红外线部分——遇到物体表...

2018-03-13 20:51:23 1584

原创 CodeForces - 899F(线段树)

题目链接题意:给你一串字符串,然后给m个操作,每次删除[l,r]区间内所有的字符c。问最后剩下的字符串是什么样子思路:用一个线段树去维护这个字符串,每一个结点用一个类似于计数排序的数组去存储该区间内每一个字符的个数,然后动态维护这个线段树,最后遍历这个线段树(线段树的一些操作见线段树(转))AC代码:#include<iostream>#include<cstdio>...

2018-03-12 21:06:14 188

转载 线段树(转)

原文链接线段树代码中如何实现?(0)定义:[cpp] view plain copy    #define maxn 100007  //元素总个数  int Sum[maxn<<2],Add[maxn<<2];//Sum求和,Add为懒惰标记 (开四倍空间)int A[maxn],n;//存原数组下标[1,n](1)建树:[cpp] view plain copy    ...

2018-03-11 17:08:53 168

原创 CCF 201609-4(最短路径SPFA的变形)

问题描述  G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。  建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些条件下最...

2018-03-10 19:37:46 572

原创 CCF 201612-4(DP)

题目:问题描述  给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。  使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:  L=a1的编码长度×t1+a2的编码长度×t...

2018-03-08 18:58:14 386

原创 CCF 201703-4(最小生成树Kruskal)

题目:问题描述  A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁。  地铁由很多段隧道组成,每段隧道连接两个交通枢纽。经过勘探,有m段隧道作为候选,两个交通枢纽之间最多只有一条候选的隧道,没有隧道两端连接着同一个交通枢纽。  现在有n家隧道施工的公司,每段候选的隧道只能由一个公司施工,每家公司施工需要的天数一致。而每家公司最多只能修建一条候选隧...

2018-03-06 23:26:34 145

原创 CCF 201709-5(树状数组)

题目:问题描述  小葱喜欢除法,所以他给了你N个数a1, a2, ⋯, aN,并且希望你执行M次操作,每次操作可能有以下两种:  给你三个数l, r, v,你需要将al, al+1, ⋯, ar之间所有v的倍数除以v。  给你两个数l, r,你需要回答al + al+1 + ⋯ + ar的值是多少。输入格式  第一行两个整数N, M,代表数的个数和操作的次数。  接下来一行N个整数,代表N个数一开...

2018-03-03 21:20:26 359

原创 天梯L1-020. 帅到没朋友(搜索)

思路:用一个vis数组表示该id是否出现过,最后只要判断vis[i]是否为0就行注意:    1.如果k为1,则此时不应改变对应vis的值(因为此时他也没有好友)    2.因为id从0开始,输出时候不足五位的要补0AC代码:#include<iostream>#include<cstdio>#include<cstring>using namespac...

2018-03-01 22:02:43 194

原创 天梯L1-006. 连续因子 (贪心+暴力)

思路:由于13!>2^31,所以最大长度不会超过12,那么我们就从长度为12开始搜索。之后就从2开始累乘,看是否满足条件。注意到因子中最大的不可能超过sqrt(n),所以可以做一些剪枝注意点:素数!!AC代码:#include<iostream>#include<cstdio>#include<cmath>using namespace std;...

2018-03-01 17:01:55 241 1

原创 笔记(红黑树)

红黑树是一棵二叉搜索树,它确保没有一条路径会比其他路径长出2倍,满足以下红黑性质:    1.每个结点或红或黑    2.根结点是黑色的    3.每个叶结点(NIL)是黑色的  (如果一个结点没有子结点或父结点,则该结点相应指针属性的值为NIL)    4.如果一个结点是红色的,则它的两个子结点都是黑色的    5.对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点为了...

2018-02-28 21:49:34 203

原创 学习笔记(散列法)

    多数散列函数都假定关键字的全域为自然数集,因此我们首先想办法将关键字转换为自然数(如标识符pt,首先用ASCII码转换,p=112,t=116,再以128为基数来表示,即pt=112*128+116=14452)。下面介绍两种散列法:1.除法散列法    散列函数h(k)=k mod m    要避免选择m的某些值。如m不应为2的幂,否则h(k)就是k的p个最低位数字。m常常取不太接近2的...

2018-02-28 20:36:52 322

原创 【POJ - 2195】Going Home(KM算法求二分图最小权匹配)

题目链接题意:给一张地图,标记num个人和房子的位置,每个房子只能住一个人,求所有人都进入房子至少需要多少步解析:首先计算出每一个人到每一个房子的距离,然后就是套用KM求最佳匹配的板子。不过KM算法不好理解,这里借用一位大佬的博客:博客链接 。大佬写的十分生动,方便理解。    以下为AC代码:#include<iostream>#include<cstdio>#inc...

2018-02-27 20:30:11 244

原创 [Apio2009]Atm 强联通分量+SPFA

原题链接题意:有N个路口和M条单行道,告诉了每个路口ATM机中的钱数,市中心S的位置,P个酒吧的位置。求从市中心出发,途径ATM机获得钱(可重复走同一条路,同一个路口),最后在一个酒吧中消费,问最多可以获得多少钱。思路:先找强联通分量进行缩点,构造新图。然后利用SPFA算法寻找从S出发的最长路径AC代码:(取名是个坑,最好不要把变量名字取成库函数中的函数名,,,不然有可能CE)#include&l...

2018-02-27 11:43:55 174

原创 HDU 3836 Equivalent Sets(强连通分量+缩点)

题目链接题意:告诉你有n个集合,下面m条输入表示x是y的子集,求至少还要几步,能够确保这n个集合相等。    题目翻译过来也就是知道n个点,m条有向边,问至少需要加多少条边才能构成一个强联通图思路:先找到所有的强连通分量,把他们缩点,最后要求的也就是缩点之后,入度为0的点n1和出度为0的点n2中的最大值AC代码:#include<iostream>#include<cstdio...

2018-02-26 23:14:49 155

原创 笔记(带权中位数)

(图截自算法导论)先做下笔记,记住结论。寻找带权中位数方法:假设结构为sstruct Node{ double value; double weight;}nodes[maxn];则1.按照坐标从小到大排序(用快排)2.计算出总的权值sumweight(即所有点weight之和)3.计算带权中位数 Node Getmid(Node *node) {    double lweight=0;    ...

2018-02-25 23:00:00 833

原创 桶排序

桶排序是假设输入数据服从[0,1)上的均匀分布,平均情况下,它的时间代价为O(n)主要思想:    将[0,1)区间划分为n个相同大小的子区间(桶)。然后将n个输入数分别放到各个桶中。先对每个桶中的数进行排序,然后遍历每个桶,按次序把每个桶中的元素输出伪代码:BUCKET-SORT(A)   //输入数组为A,  临时数组B[0...n-1]存放桶(用链表)1  n=A.length2  ...

2018-02-25 20:47:30 96

原创 计数排序

  计数排序是一种非基于比较的稳定的排序算法。在一定条件下,运行时间为O(n)。基本思想:对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数(此处并非比较各元素的大小,而是通过对元素值的计数和计数值的累加来确定),之后将x直接存放在最终的位置上条件:1、n个输入元素中的每一个都是在0到k区间内的一个整数;2、k=O(n)。伪代码:COUNTING-SORT(A,B,k)  //输...

2018-02-25 20:14:56 115

原创 快排思想

对于数组A[p...r]进行快排:    主要思想:将数组A[p...r]划分为A[p...q-1]和A[q+1...r],使得左区间的每一个元素小于A[q],右区间每一个元素大于A[q]。    实现方法:(伪代码)      QUICKSORT(A,p,r)      1  if  p<r      2      q=PARTITION(A,p,r)  //寻找划分中点      3  ...

2018-02-25 19:29:07 555

空空如也

空空如也

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

TA关注的人

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