自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yeleng的博客

记录各种算法与想法以便自己更好的成长

  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 USACO 2.1 castle <图搜索>*****

提交了好多次,坑好多啊the reason of failure:对各种小问题都考虑齐全再提交,别有一种侥幸的心理!!!1、储存能走的路的时候还要两个路之间需要储存墙,想好墙分别在那些地方,初始化的时候哪里有墙。2、判断是否能走下一步的时候,要判断是否能走和是否走重。3、走上下左右的时候,要考虑的4个方向都不能走,应该如何解决,应该是在这个if就把其标记走过而不是等走右边的时候

2016-12-30 21:16:55 303

原创 usaco Superprime Rib<dfs找回文>

短时间一遍过,还是挺开心的。题意是给一个n,找出n位数的大回文素数数,大回文数的定义是对于如2339是素数,233是素数,23是素数,2是素数,那么其就是大回文数。thinking:直接从第一位开始到第N位开始构造DFS,如2是素数那么将*10搜索其下一位,然后接着搜索下一位,直到位数大于n,则输出。这样可以保证前面几位的构成都是素数,代码:/*ID: mePROG: sp

2016-12-30 17:23:21 278

原创 USACO 1.5 PROB Prime Palindromes <构造回文+素数判定>

the reason of failure:1、超出内存了,刚开始是用筛素数的方法,可是数字毕竟大。2、然后是直接输入判断是否回文和是否素数,结果是超市。thinking:要么枚举回文,判断素数,要么枚举素数,判断回文,可以通过构造回文的方法。对一个N位数的数字,反转给其右边一个N-1位的数字,和反转给其右边一个N位的数字,然后通过2个while来取完整的N位数和只取左边N-1个数

2016-12-30 17:04:04 304

原创 USACO 1.1.4<枚举>

the reason of failure:1、输出时,最后一行需要换行。题意:就是给3个桶,给出每个桶的容量大小,开始只有第三个桶有牛奶,问当第一个桶牛奶数为0时,第三个桶有多少牛奶,直接枚举,2个for循环,从i倒到j,当且i不为0且j不满的时候,当第一个桶的牛奶为0的时候,记录下第三个桶的牛奶数量。/*ID: mePROG: milk3LANG: C++*/#inc

2016-12-30 13:15:56 280

原创 计数与概率基础(容斥、有重复元素的全部排列、可重复选择的全排列、杨辉、二项式定理、欧拉函数)

1、容斥原理。如果班里有15个人喜欢物理,

2016-12-28 22:28:33 3891

原创 数论初步<最大公约,最小共倍,唯一分解定理,素数筛选,扩展欧几里德,取mod运算>

刚看完一点点数论,感慨万千,数论真的是够难啊!!!1、最大公约。int gcd(int a,int b){return b=0?a:gcd(b,a%b);}2、最小共倍。c=a*b/gcd(a,b) 或者a/gcd(a,b)*b 注意区别,第一种有可能越界。3、唯一分解定理。对于任意一个大于1的自然数X2均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式

2016-12-26 16:30:23 576

原创 长安大学J题 藏宝图

J 藏宝图******************J 藏宝图Description彩虹岛有一个神秘的地方,里面藏着无数的珍宝,这便是朝晖十四号楼。为了找到宝藏,无数勇士不惜踏上了(女装)寻宝的不归路,其中也包括

2016-12-25 22:39:03 254

原创 ZOJ 2334 可并堆<斜堆>

thinking:1、可以为大根堆或者小根堆,相当于优先队列,但是有合并这个功能关键代码是int merge(int x,int y){if(tree[x].weight==0)return y;if(tree[y].weight==0)return x;if(tree[x].weighttree[x].rch=merge(tree[x].rch,y);swap(x,y

2016-12-25 18:15:00 312

原创 16级西北工业大学ACM新生杯<第二次现场赛>

thinking:五个小时12题过了两题,真是悲哀,菜到没脾气,但我不会认输,我会把这当作动力,坚持下去。the reason of failure:1、拿到题目看到E是模拟,果断开始写,大概40分钟写了,最后发现数据有些大,超时了,想了想并查集和哈希,但都不熟练,发现榜单A是签到就去做了。(复杂度判断能力弱,各种算法不熟练)2、做题实在太慢,总是慢慢的想,难道就不能打字快点,速度思考抓紧

2016-12-25 10:57:49 1071

原创 HDU 1166 数据结构-<线段树>

thinking:做线段树,然后这个线段树里的结点为这个线段的总值。the reason of reason:1、大数据又用cin,太慢了!!应该用的scanf2、数组开得不够大,运行失败题意:给一个N,然后N个数,表示各个点的值,然后增加、减少、一个点中的值,查找一个线段中的值。代码:#include #include using namespace std;str

2016-12-23 22:35:06 270

原创 最优二叉树<哈夫曼树>

thinking:找到2个最小值的点,将其的值加起来成一个新结点的值,然后这个新结点是这两个结点的父节点,然后再在这些结点(父结点)中选择2个接着连成一个父结点,依次循环就可以构造出一个哈夫曼树了。the reason of failure:1、(AA&&BB||CC)与(AA&&(BB||CC))意义是不一样的。2、得写一个walked来记录哪个结点已经被选择过了而不能再次被选择。代

2016-12-23 20:34:02 597

原创 上机题目<构造表达式>

thinking: 开一个数组,将每个数字中间空出来,然后通过用DFS枚举全部可能填补这个空出来的位子,然后把每次出现的数组可能进行计算,如果是0则+1。important point:int dfs(int t){ int i,j; if(t>n*2-2)jisuan(); else for(j=-1;j>-4;j--){ // cout << "i=" << i << "

2016-12-23 12:32:24 265

原创 顺序二叉树链表实现<模版>

花了一整天的时间琢磨,算是明白一点指针的使用了输入样例:2120 10 30 5 15 25 35 3 6 11 28 2 7 27 29 8 9 40 33 34 26这是一个二叉顺序树用链表实现,然后添加与删除根据函数来。代码:#include #include using namespace std;struct tree{ int data; tree

2016-12-19 23:00:17 348

原创 FBI树<链表构造二叉树+后序输出>

the reason of failure:1、将一个字符串从i到len分成两份的时候,若为偶数,注意第二份的开头是len/2+1题意:给一串01码,把01码分割成左右两份,左结点放左份,右结点放右份,然后判断这份结点包括有"0"和"1"则为F结点,如果只包含"0"则为B结点,只包含"1"则为I结点。代码:#include#include #include using nam

2016-12-19 14:33:02 287

原创 二叉查找树<链表实现>

thinking:第一个结点作为根结点,然后接下来每个结点与根结点对比,如大于根结点则放右边,小于根结点则放左边,然后比较下一个结点,知道遇到空节点则储存、输入样例:96 3 8 5 2 9 4 7 10输出样例:(前序遍历)6 3 2 5 4 8 7 9 10代码:#include #include using namespace std;struct t

2016-12-19 09:22:43 269

原创 求有向图的强连通分量<Tarjan>

概念:有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。过程:对于该图,刚1

2016-12-17 10:26:23 512

原创 判断&lt;有向/无向>图是否存在环

如果边数>=结点数,则该图必定存在环。无向图:对于无向图,可以通过并查集判断是否有环,通过查看2个结点是否均为一个根节点,如果均为一个根节点,则说明有环。有向图:对与有向图,可以通过拓扑排序的方法,查看是否能拓扑排序。因为如果有环,则这个环必定找不到入度为0的点。样例:7 61 21 72 33 44 64 5无向图模版:判断是否有环...

2016-12-16 20:00:34 1428

原创 欧拉回路输出

输出方法,判定未完#include #include using namespace std;bool map1[105][105];bool used[105][105];int m;int euler(int v){ for(int i=0;i<=m;i++) if(map1[v][i]&&!used[v][i]){ used[v][i]=used[i][v]=1

2016-12-14 23:28:58 1307

原创 ccf 游戏 <BFS+队列剪枝方法>

the reason of failure:1、超时小技巧:就是卡时间,数据小,通过剪枝。201604-4试题名称:游戏时间限制:1.0s内存限制:256.0MB问题描述:问题描述  小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行

2016-12-14 21:24:17 300

原创 CCF 炉石传说 <模拟>

201612-3试题名称:炉石传说时间限制:1.0s内存限制:256.0MB问题描述:问题描述  《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作

2016-12-14 18:29:20 223

原创 poj 3041 二分图基础知识+匈牙利算法模版

二分图的定义:如果图的顶点可以分为2个互不相交的子集(A,B),则称这个图为二分图。完全二分图:是指二分图两个集合中每个顶点与另外一个集合的所有顶点都有权值相连。匹配:匹配是把两两存在公共边的的结点且未被匹配的结点相连。增广路径:如果一条路径的首尾是非匹配点,路径中除此之外,其他的点均为匹配点,那么这条路径是一条增广路径。2个点也是一个增广路径。每个增广路径都能变为比原来多一个匹配

2016-12-13 23:36:23 333

原创 倒水问题<隐式图遍历><结构体中帮设置优先队列>

the reason of failure:1、ttt新定义的结构体需要自己赋值,其初始值并不为0.2、如果用普通队列存在t[1]便退出,得到的并不是最少倒水数。3、状态的转移一定要以从队列出来的状态为基准而改变。题意样例输入1 3 6 41 12 15 7输出414代码:#include #include #include using n

2016-12-12 23:13:05 426

原创 hash的简单使用<找数字>

thinking:1、用一个数组存储出现过的数字,刚开下下标为1(可以思考为什么下标刚开始不能为0)。2、相同数对一个数取mod的值是固定的,通过这么mod出来的值作为关键字去查找是否存在。如先插入6 15 20 15,6 mod 7= 6,然后通过6查找之前是否有mod 后结果是 6 的数,没有,则把其下标也就是1 作为 head[6] 然后插入15 通过 15 mod 7 = 6

2016-12-12 09:52:21 304

原创 八数码问题<set的使用>bfs

the reason of failure:1、如何对0进行上下左右移动用pos找到0在数组中的下标可以定义dr[]={0,1,0,-1};dc[]={1,0,-1,0}.然后一个for4次的循环,r=pos/3+dr c=pos%3+dc便能实现上下左右的移动2、对于储存状态与查找,可以把数组存入set然后查找。题意八数码问题。编号为1~8的8个正方形滑块被摆成3行3列(

2016-12-11 17:43:35 613

原创 16级长安大学ACM新生杯<第一次现场赛>

ABC签到题、D卡片游戏sort(a,a+26,cmp1) 其中26这个地方最好不是一个变量,因为当变量的值较大时,会导致数组越界贪心,从最多卡片数量的那种开始取,可以获得硬币的最大值。题意Descriptionctr与fdf在玩一个游戏,ctr有n张卡片,每张卡片上写了一个大写字母(A − Z) 。fdf要从中选出k张卡片(1 ≤ k ≤ n),ctr会根据fdf选择

2016-12-10 20:57:49 1054

原创 最长回文子串<通过从中间插入然后向两边扩展>

thinking:通过从选择每个字符,然后判断其右边是否有与其相同的字符串,如果有相同的字符串则r1++,直到无与选择的这个字符相同的字符,然后开始左右判断字串是否相同,相同则接着判断,最后返回的长度为r1-l1-1;代码:#include #include using namespace std;char str[100];int len;int fun(char str[],

2016-12-10 16:42:32 270

原创 HDU 1233 <最小生成树prim><稠密图><可做模版>

the reason of failure:1、阶层不会算,用循环写的,最后超时。N!=N*(N-1)/2thinkin:模板题题意:还是畅通工程Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 41687

2016-12-09 11:13:17 334

原创 HDU 1285 <优先队列+拓扑排序> <拓扑模版>

the reason of failure:1、没有判断重边问题,以后所有类似图结构的输入都需要判定重边。2、数组的定义应该定义在函数外,否则会出现running time error,数组不应该开太大,否则会超出内存题意:确定比赛名次Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K

2016-12-09 10:26:03 324

原创 最大子矩阵问题<DP>

thinking开始令pos1=1,pos2=1:先判断pos1-pos2高度的每个格子,取或者不取,得出一维也就是只有第一行的最大子矩阵。然后pos2++,因为是要求连续子矩阵,那么从第一行到第二行的子矩阵相加,就相当与只判断一行,可以找出pos1=1到pos2=2也就是第一行到第二行且只取这两行作为子矩阵的最大值,然后pos2再加1,则变成判断包括第一行在内的三行,直到最后一行,然后pos

2016-12-07 17:14:30 352

原创 N皇后问题<DFS>

每个皇后不能在同一行,列,斜线thinking:深搜,做标记判断是否能走,能走则走再找下一行的每一列看哪一列能走代码:#include using namespace std;bool map1[500][500];int n;void print(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout << map

2016-12-07 12:50:52 262

原创 USACO 1.3 Ski Course Design <枚举>

the reason of failure:1、当特殊值输出时,应该立刻停止下面程序的运行,否则会输出2个结果。2、定义的初值minn太小,如果第一个答案本身就大于minn,那还怎么给minn赋值thinking:枚举全部可能,从1-18 2-19 3-20 这样的区间枚举题目Ski Course DesignFarmer John has N hills on h

2016-12-07 10:39:22 244

原创 POJ 1611 <并查集>

thinking:把所有在一个组的学生连到一棵树(注意如果一组多人如5人是如何输入到一棵树上),然后判断多少个结点的根结点与0的根结点相同,最后输出总数+1.DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized a

2016-12-06 19:26:50 184

原创 HDU1232 并查集<并>

thinking:把每个结点初始化其就为根结点,然后一次性输入2个数到mix(a,b)函数,判断其是否属于同一个根结点,如果是同一个根结点什么都不发生,如果不是同一个结点,则把b结点加入到a所在的树,然后通过给每一个结点的根结点一个标记1,最后计算被标记的结点总数,那么这个总数就是树的总量。畅通工程Time Limit: 4000/2000 MS (Java/Others)    Me

2016-12-06 18:14:13 206

原创 简单递推锦集

1、走楼梯问题,一个人刚开始站在第一级楼梯,每次可以走1级或者两级,请问走到第N级楼梯有几种走法?2、HDU-20463、4、不容易系列之(3)  —— LELE的RPG难题有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂

2016-12-05 23:11:11 253

原创 CodeForces 471D<差分+KMP>--scanf的读入远比cin快

thinking:用在数据庞大时scanf的读入速度远远比cin快速,这里就快了十倍.题意:DescriptionPolar bears Menshykov and Uslada from the zoo of St. Petersburg and elephant Horace from the zoo of Kiev got hold of lots of wood

2016-12-04 22:31:40 304

原创 KMP

thinking:有s1,s2.2个数组,判断s2在s1中出现的次数,复杂度为O(N+M).如s1=1 2 3 4 2 3 4 2 3 4 2 3 4 2 3 4 2 3 5  s2=4 2 3 4 2 3用一个数组next[]储存s2的各个数字上一次在本数组出现的位子,就不用再重头开始判断,如next[1]=0,next[2]=0,next[3]=0,next[4]=1,next

2016-12-04 21:46:20 182

原创 DP-最长上升序列

thinking:两个循环,找小于自身的那个数,也就是到这个找到的数有几个最大上升序列了,在原基础上加1.然后接着往前找,挑出最大值赋值到这个数.如 1 3 9 2 6 11每隔数初值为1.则3的最大上升序列为2,9的最大上升序列有(3的最大上升序列),(1的最大上升序列),找最大加1,则为3,那么2的最大上升序列为(1),则2的最大上升序列为2.6的最大上升序列为(2的最大上升序列)

2016-12-03 16:59:46 262

原创 DP 数字三角形+找钱问题

thinking:从后往前推输入样例:61 2 34 5 67 8 9 1011 12 13 14 1516 17 18 19 20 21代码:#include using namespace std;int main(){ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);

2016-12-03 14:44:48 316

原创 POJ2044 2502 2018简单几个递推

the reason of failure :1、输入两个数a,b 应该是从a到b 而我弄错是从1到b了.thinking:递推,通过前面的结果推出后面.如从3到7的方法数=从3到6+从3到5      =从3到5+从3到4+2      =2+1+2题意:Description有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂

2016-12-03 00:24:06 386

原创 POJ 2387<BFS>

the reason of failure:1、MAXN定义太小了,虽然每条线的距离为100以内,但是有1000以内的线,所以存在1000*100的长度.thinking:简单BFS找最短,但要注意长度这个问题.题目:A - Catch That CowTime Limit:2000MS     Memory Limit:65536KB     64bit IO For

2016-12-01 22:57:39 219

R语言的简单使用

R语言的简单使用。R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。

2018-08-20

Svm支持向量机详细内容

SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。SVM支持向量机,好东西啊,大家好好学习

2018-08-20

空空如也

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

TA关注的人

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