
算法题解
算法学习刷题过程中遇到的值得记录的题目。
EnterPine
这个作者很懒,什么都没留下…
展开
-
使用图DFS(Depth-First-Search)解决排列组合问题
背景 在近期的项目中,有一个的功能设计,此功能有一个将指标修饰词进行排列组合的步骤。 一开始的觉得这里使用多重循环就可以解决,随着实践发现了一些暴力算法的局限性,有想起来之前做图计算最短路径的深度优先搜索DFS算法,在这个场景加以变化正好适用。场景需要对多种类型的修饰词进行组合例:类型A的值有: 1,2类型B的值有: a,b,c那么组合的结果就有.原创 2021-01-07 13:57:07 · 340 阅读 · 0 评论 -
快速排序算法,scala版
def qsort(a:Array[Int],start:Int,end:Int): Unit ={ if(start >= end){return} var i = start var j = end val key = a(start) while(i!=j) { ...原创 2019-03-29 10:16:57 · 341 阅读 · 0 评论 -
快速排序算法,python版
a=[46,30,82,90,56,17,95,55,15,1,4,7,4]#a=[15,30,17]def qsort(a,start,end): if(len(a)<=1): return l = len(a)- 1 i, j = start, end base = i cmp = j while(cmp!=base):...原创 2019-03-29 10:18:26 · 195 阅读 · 0 评论 -
最长公共子序列-LeetCode1143图解
题目:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个...原创 2019-12-11 10:36:10 · 620 阅读 · 0 评论 -
HDU4288 Coder
题目大意:add即像数字串中添加数字,del n删除数字串中值为n的元素。sum 按照所给公式求和。 坑点:所给的数字是由小到大排序的,需要注意的是后面如果add一个数字,需要放到合适的位置。比如 3,4,7,9, 如果add 6,6需要放在4,7之间。 这道题一直超时,关键在删除值为n的元素的时候会超时,因为需要遍历。 所以使用二分搜索找到插入n的位置以及删除n的位置。...原创 2014-09-03 13:24:06 · 919 阅读 · 0 评论 -
HDU4278 Faulty Odometer(进制转化问题)
题目大意:里程表会错过0 1 2 3 4 5 6 7 8 9中的 3 和 8 两个数字 也就是 正常的里程表显示0 1 2 3 4 5 6 7 8 9 坏掉的里程表只会显示 0 1 2 4 5 6 7 9 其实可以看做:0 1 2 3 4 5 6 7 即坏掉的里程表显示的是8进制的数字原创 2014-09-03 13:21:17 · 907 阅读 · 0 评论 -
HDU2546-饭卡(DP+贪心)
DP动态优化+贪心的算法。#include #include #include using namespace std;int a[1010],V,rest,f[1200],maxm;void DP(){ for(int i=0;i<V;i++){ for(int v=rest-5;v>=0;v--){ if(f[v]==1)原创 2014-08-27 20:11:51 · 765 阅读 · 0 评论 -
poj3624_Charm Bracelet (01背包问题)
01背包问题:推荐资料《背包问题九讲》#include using namespace std;int cost,ans,val,n,V,f[12890];int maxm(int a,int b){ if(a>b) return a; return b;}int main(){ cin>>n>>V; for(int i=0;i<n;i++){原创 2014-08-26 17:01:42 · 734 阅读 · 0 评论 -
HDU1003- Max Sum(DP优化入门题目)
DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = ...原创 2014-08-26 12:58:55 · 850 阅读 · 0 评论 -
HDU1240 Asteroids!-题目意思详解( 三维BFS)
题目大意:先输入START N 表示这个立方体的层数是N,每一层为一个NxN的正方形。。其实就是一个NxNxN的正方体,输入时一层一层的输入。输入完立方体后,输入起点和终点的坐标。输出是 先输出 N 再输出最短路径的步数。如果走不到终点,输出NO ROUTE。坑点:它输入的起点和终点坐标不与我们输入的立方体对应。要把输出的起点终点描述看仔细了 不能想当然#include ...原创 2014-08-15 16:24:18 · 3038 阅读 · 5 评论 -
HDU1242 (BFS搜索中使用优先队列)
一道用到优先队列的BFS题目#include #include #include #include #include #define N 201using namespace std;char maze[N][N];int a,b,anw;bool visit[N][N];int dir[4][2]={{0,1},{1,0},{-1,0},{0,-1}};int sx,s原创 2014-08-13 16:32:18 · 801 阅读 · 0 评论 -
poj1088 滑雪(dfs、dp优化)
#include #include #include #include #include #include #include #include #define N 110int a,b,step=0;int anw=0;int moun[N][N];int dp[N][N];int dir[4][2]={{1,0},{0,1},{-1,0},{0,-1}};using原创 2014-08-12 15:14:13 · 1185 阅读 · 0 评论 -
8.8学习笔记
bfsdp状态压缩原创 2014-08-08 19:30:08 · 603 阅读 · 0 评论 -
UVA141- The Spot Game【运行时间:25ms】
题目大意:两个玩家依次在棋盘上xiaqi原创 2014-08-07 11:27:41 · 1076 阅读 · 1 评论 -
HDU4751 -(广义孪生素数猜想)
广义孪生素数猜想:对于任何偶数,存在两个质数之差等于这个偶数#include<cstdio>#include<iostream>#include<cstring>#include<map>#include<vector>#include<queue>#include<cmath>#includ...原创 2014-08-06 15:18:23 · 1161 阅读 · 0 评论 -
uva 10700 算式的加减乘除的运算优先级,算式的运算顺序处理。
题目:一个只有“+”和“*”的算式,得到的结果做大为原创 2014-08-06 10:13:26 · 930 阅读 · 0 评论 -
uva11991:一串数中第k个n的位置 FROM shu
题目:Easy Problem from Rujia Liu?Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia原创 2014-08-05 19:04:36 · 745 阅读 · 0 评论 -
把整数分解为它的质因子以及质因子的幂次
功能:把N分解成 N=X^a+Y^b+Z^c X,Y,Z时N的质因子 输入:N 输出:X a Y b Z c代码:#include<cstdio>#include<iostream>#include<cstring>#include<...原创 2014-08-01 10:22:44 · 1296 阅读 · 0 评论 -
POJ 3367 Expression(建立二叉树)
题目大意:大写字母会作为其原创 2014-07-31 02:06:39 · 860 阅读 · 0 评论 -
POJ 2418 Hardwood Species (map练习)
题目大意:输入一组单词,输出meigeda原创 2014-07-31 02:00:39 · 604 阅读 · 0 评论