- 博客(31)
- 收藏
- 关注
原创 子集和问题
子集和问题Problem Description子集和问题的一个实例为〈S,t〉。其中,S={ x1,x2,…,xn}是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得:。试设计一个解子集和问题的回溯法。对于给定的正整数的集合S={...
2019-11-21 09:14:54 490
原创 高数Umaru系列(9)——哈士奇
背包问题:解题思路有两种情况,1、背包装的下 2、背包装不下 其中背包装得下有两种情况 (1)装 如果装的话就要比较之前的和新装的大小关系,取最大的 max(dp[i-1][j],dp[i-1][j-dp[i].p] + dp[i].m) ...
2019-11-19 09:38:39 178
转载 Python正则表达式初阶
正则表达式中的贪婪模式和非贪婪模式。一、概念首先举个例子:example = "abbbbbbc"pattern = re.compile("ab+")贪婪模式:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式pattern 匹配字符串example,匹配到的结果就是”abbbbbb”整个字符串。非贪婪模式:在整个表达式匹配成功的前提下,尽可能少的匹配。如...
2019-11-15 09:46:43 185
转载 DAG代码优化
DAG优化Problem Description大家都学过了代码优化,其中有一个DAG优化,这次我们就练习这个操作。Input输入第一行为一个整数n(n < 100),表示该组输入的表达式的个数之后n行为表达式,每个变量为一个字母,表达式仅包括二元运算 + - * /...
2019-11-06 20:16:23 1024 1
转载 DAG代码优化
本文章转载于https://blog.csdn.net/roger_ranger/article/details/78830679,感谢博主的文章!!!DAG构建的流程如下对基本块的每一四元式,依次执行: 1. 如果NODE(B)无定义,则构造一标记为B的叶结点并定义NODE(B)为这个结点; 如果当前四元式是0型,则记NODE(B)的值为n,转4。 如果当前四元式是1型...
2019-11-06 19:52:37 3107
原创 翻译布尔表达式
翻译布尔表达式Time Limit:1000 msMemory Limit:65536 KiBProblem Description大家都学过了布尔表达式的翻译,其中有一个拉链-回填技术,这次我们就练习这个技术。Input多组输入,首先输入一个整数T,代表数据组数。接下来每组输...
2019-11-06 19:35:06 298
原创 小C语言--词法分析程序
小C语言--词法分析程序小C语言文法1. <程序>→<main关键字>(){<声明序列><语句序列>}2. <声明序列>→<声明序列><声明语句>|<声明语句>|<空>3. <声...
2019-11-03 16:04:08 166
原创 表达式语法分析——递归子程序法
表达式语法分析——递归子程序法递归子程序法是一种确定的自顶向下语法分析方法,要求文法是LL(1)文法。它的实现思想是对应文法中每个非终结符编写一个递归过程,每个过程的功能是识别由该非终结符推出的串,当某非终结符的产生式有多个候选式时能够按LL(1)形式唯一地确定选择某个候选式进行推导。请根据下面的表达式LL(1)文法,构造递归子程序,完成对表...
2019-11-03 15:51:16 278
原创 堆排序
数据结构实验之排序四:寻找大富翁 Time Limit: 200 ms Memory Limit: 512 KiBProblem Description...
2018-12-12 23:05:24 173
原创 希尔排序
首先,希尔排序是直接插入排序的升华,在了解直接插入排序的基础上,稍加改动就实现希尔排序。接下来讲述希尔排序的原理: (1)希尔排序(shell sort)这个排序方法又称为缩小增量排序,该方法的基本思想是:设待排序元素序列有n个元素,首先取一个整数d(小于n)作为间隔将全部元素分为d个子序列,所有距离为d的元素放在同一个子序列中,在每一个子序列中分别实行直接插入排序。然后缩...
2018-12-11 21:11:41 1225
原创 并查集算法
并查集实际上就是找"首领“的算法,可以分成几个团队,这个算法借助一个一维数组来实现,本质是维护一个森林。刚开始的时候,森林的每一个点都是孤立的,也可理解为每个点都是一棵只有一个节点的树。之后通过每个条件,逐渐将这些树合并成一棵大树。其中要遵守”靠左原则“和”擒贼先擒王“的原则,判断直到两个节点的祖宗一样才行。 数据...
2018-12-06 21:09:09 1076
转载 【AOE网的关键路径详细解释】
例图 如上图,是一个AOE网,点表示状态,边表示活动及其所需要的时间。为了求出关键路径,我们使用一下算法:1.求出到达各个状态的最早时间(按最大计)这个过程是要从源点开始向汇点顺推:V1是源点,其最早开始时间是0。 V2、V3、V4最早时间分别是是6、4、5。 对于V5而言,V2到V5所花费时间是6+1=7,而V3到V5所花费时间是4+1=5。我们要按最大计,也就是V5...
2018-12-02 21:40:49 1176
原创 【哈希表应用总结】
处理哈希表冲突的方法主要有除留余数法,平方探测方法,以下两题具体介绍两种方法的使用方法 数据结构实验之查找五:平方之哈希表 Time Limit: 400 ms ...
2018-08-24 11:19:00 506
原创 【HDU个人赛 未做题】 欧里几得求最大公约数
Hint: 此题是在求两个数的基础上求多个数据的最小公倍数,思路是先求两个数的最小公倍数,得到的结果再和第三个数求最小公倍数..........以此类推。值得注意的一点是求最大公约数时用到欧里几得法求取,简单易行 O(∩_∩)O Least Common Multiple The ...
2018-08-23 14:34:17 264
原创 【看似最小生成树】 人活着系列之寻找最完美的人生
本题在最小生成树哪一个专题,以为用最小生成树的知识做,结果不用这个,直接按照从小到大的顺序排序,然后将第一个数与后面的所有数应用已知式子求解,最后输出相加的和就 AC。就是这么秀!!!! 人活着系列之寻找最完美的人生 ...
2018-08-22 13:35:39 264
原创 最小生成树总结---最小生成树
数据结构实验之图论九:最小生成树 Time Limit: 1000 ms Memory Limit: 65536 KiB ...
2018-08-22 13:31:42 526
原创 并查集的应用总结【连通分量的个数and电影节】
所谓并查集其实就是找谁和谁是同一个团体,也就是匹配问题,刚开始接触的时候,觉得道很懂,代码不会敲,经过一位学姐的讲解,对并查集有了更进一步的理解。 先来看一个题目:并查集题目1.0版: 数据结构实验:连通分量个数 ...
2018-08-22 13:24:57 366
原创 【栈和队列】进制的转化
数据结构实验之栈与队列一:进制转换 Time Limit: 1000 ms Memory Limit: 65536 KiB ...
2018-08-17 17:41:09 482
原创 【图的最短路之 Dijkstra算法】 最短路径问题
最短路径问题 Time Limit: 1000 ms Memory Limit: 65536 KiB ...
2018-08-17 10:51:57 587
原创 【图的最短路之 Dijkstra算法】 最短路径
图结构练习——最短路径 Time Limit: 1000 ms Memory Limit: 65536 KiB ...
2018-08-17 10:49:13 574
原创 完美字符串 (字符哈希)
Hint: 首先统计各个字母出现的次数,这用到ASCII码,然后要根据统计的信息进行排序,然后再以此乘。 #include <stdio.h>#include <string.h>int main(){ char str[10001]; int a[10001]; int l, i, sum = 0, t, j, q, k...
2018-08-16 14:22:29 720
原创 图的搜索方式-Catch that Cow (BFS)
Hint: 此题可以看成是一颗三叉树进行层序遍历。如果把牛的坐标看成是不变的量,让农夫动,那么就会有三种情况:向左,向 右,还有除二操作。 注意用队列的时候要理解清楚谁进谁出 Accepted; 代码1.0版(整体的思路不是很清晰)#include <stdio.h>#include <stdlib.h>...
2018-08-15 17:12:45 199
原创 完数
此题与前面比赛的题目相同, 思想很重要注意a和b的大小关系即可 #include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ int n, a, b, i, sum, s= 0, j, t; scanf("%d",&n); ...
2018-08-10 18:41:44 291
原创 旋转字符串
解题思路此题只要判断两个方面,第一长度是不是偶数,第二是不是对串AC代码如下: #include<stdio.h>#include <string.h>int main(){ char str[1001000]; int len, i, j; while(~scanf("%s",str)) { ...
2018-08-10 18:28:00 181
原创 数据结构之 平衡二叉树总结
敲这个题时,预备知识是知道四种旋转方式,分别是LL、RR、LR、RL,对应每一种的变换方式要做到会旋转,会写关键的代码这个题是参照一篇博客写的,然后自己又理解了一遍。#include <stdio.h>#include <stdlib.h>#include <string.h>struct node{ struct node...
2018-08-09 20:50:06 605
原创 数据结构之 二叉树的存储和遍历总结
关于二叉树的存储和遍历主要有一下几个知识点: 遍历的四种方法,建树的几种方法;话不多说直接上代码: 因为是节省时间和节省空间我把他们合在了一起,此代码仅供参考,使用时要注意代码的正确性,也可以抓取想要的那部分的代码,如有错误还请各位多多包涵#include <stdio.h>#include <stdlib.h>#include <string.h&...
2018-08-09 13:44:29 1034
原创 关于二叉排序树的总结
由于近几天学习了二叉排序树,对于一些题目有一些个人的见解,随手写下这篇博文,以供大家参考二叉排序树的概念一定要弄懂: 一、二叉排序树的做法是首先建立一颗树,然后先序(中序,后序)遍历输出,如果相同则是同一棵树二、建树的时候应该分两种情况:第一是一开始是一颗空树直接插入,第二是如果小于当前节点就把它插到左子树上 否则就放到右子树上; 关键代码:stru...
2018-08-09 13:22:57 1018
原创 SDUT oj 3345 数据结构实验之二叉树六:哈夫曼编码
刚开始拿到这个题时基本没有思路,于是看了几篇博客,终于把它明白了。 思路:ASCII编码是一个字节占8个,所以计算ASCII编码时只需要计算字符串的长度即可;huffman编码是统计相同字符的个数,然后按照从大到小(从小到大)的顺序排列,这里用到栈和队列的知识,每次都把前两个数相加,然后把相加得到的结果在再放到队列中,循环即可,这里需要注意的是,再循环计算时边界条件是num数组的大小...
2018-08-09 10:21:37 668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人