- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 hdu1022-火车-栈的使用
今天做的水题有点多,犹豫要不要发出来,不管了,明天再说…… 想起大二下的时候数据结构为了一个栈的写费了多长的时间,现在用STL的格式简洁明快。所以说:不要重复造轮子。 简直要哭了。 随便写写吧:完整代码如下,一些小的感受也保存了起来,明天再好好练习:#include #include #include #include using namespace std; //1、2、3表示的只是入栈的
2014-11-30 21:47:39 382
原创 hdoj-1058 hunble numbers DP解法
自己做这道题的时候心浮气躁,一直没有把握好prime这里的意思。当然从理论上讲,*4会比*5得到的数更好(因为4并不是素数),但如果 仔细看的话就会发现实际上偶数是可以在前几个数列里就能求出的。 最后照着别人的思想自己写了一下代码,AC,但一点也不开心。 呃,这道题按照分类是在DP里面,但没有明显的表达式。#include #include #include #include using n
2014-11-30 15:47:41 589
原创 hduoj-2084 数字塔问题 DP
还是按照之前的步骤,大概写,再精化。 典型的不能再典型的DP问题,最优子结构和重叠子问题性质都满足的很好。 使用DP求解,一开始在定义最大值的时候将1000写成000,导致了一系列完全不能理解的问题。 #include #include using namespace std; #define maxnum 1000 int num[maxnum][maxnum]; int d[maxnum
2014-11-30 10:03:13 708
原创 用回溯法解旅行员收获问题
#include #include using namespace std; int a[100][100];//用来存储权值 int x[100]; //x[i]用来存储第i步遍历的城市 int isIn[100];//保存城市是否被加入路径 int bestw=100000,cw=0,n; int i,j,k; int bestx[100]; void Travel_Backtrack(int
2014-11-21 20:36:00 719
原创 回溯法解决0-1背包问题
#include #include using namespace std; int c,n,bestw=0,cw=0,cp=0,r=0; int p[100],w[100],x[100]; void BackTrack(int i) { if(i>n){//完成每一次的探索 if(cp>bestw){bestw=cp;}return; } //先进行左侧判断
2014-11-21 19:24:33 421
原创 回溯法解决装载问题
最开始的代码: #include #include using namespace std; int r,c,bestw,n,i,cw=0; int w[100]; void BackTrack(int i){ if(i>n) {//说明遍历完成 if(cw>bestw) bestw=cw; return; } else{ if(cw+w[i]<=c){//
2014-11-21 11:38:56 628
原创 算法学习之二——用DP和备忘录算法求解最长公共子序列问题
问题定义: 最长公共子序列:给定两个序列X={x1,x2,……xn},Y={y1,y2……,ym},如果X的子序列存在一个严格递增的下标序列{,,……},使得对于所有的j=1,2……,k,有=,则称产生的数组为对应的公共子序列。 如果公共子序列的长度最大,我们就称之为最长公共子序列,并求出LCS的长度(最优值)和对应的子序列(最优解)。 我们将和所对应的长度存储在数组里,并记录为c[i][j
2014-11-16 09:54:44 2872
原创 算法学习之一 —— 七种排序算法及其时间复杂度
突然间想到一句话,以自己写的代码量之低,还不到比较算法的地步。 在大型服务机面前,似乎一切的时间复杂度和空间复杂度都不是问题,所多出的那一点在摩尔定律面前几乎不堪一击。但时代的变化趋势确实智能机日益普及,诚然在工业方面我们有越来越多的资源可供利用,但在更接近社会本身、财富本身的移动互联网上,”小“才是主流。它意味着你需要越少的空间开销,需要你争分夺秒的节省用户触屏时间。仅仅是一项最简单的通讯录索
2014-11-12 20:15:38 532
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人