自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

马德里小铁匠的铁匠铺

悔恨会磨平你灵魂中的棱角。

  • 博客(32)
  • 资源 (4)
  • 收藏
  • 关注

原创 lightoj 1068 数位DP

终于AC了一直超时。。。。。。注意dp的设定。。。。。。开始的时候一直是内存超了注意一点就是当K〉=95之后结果一定是0.。。。。。。。。。。AC代码如下:#include #include #include #include using namespace std;int digit[20];int dp[11][95][95][2];int K;int DF

2013-09-28 10:10:59 826

原创 poj 3252 数位DP

注意注释中*****部分!不能不加i==1AC代码如下:#include #include #include #include using namespace std;long long dp[30][30][30];int digit[30];long long DFS( int pos, int pre_1, int pre_0, bool limit, bool p

2013-09-28 08:57:12 683

原创 lightoj 1032 数位DP

经过这几题 我发现数位dp 主要是 dp[pos][count][pre]这个设定,看到位置pos的时候 哪些状态能够影响之后的解 比方说 这题如果没了pre 就不对了 因为到pos时 有count的区非 也有pre的区分!!!!如果没有了pre那么只计算了其中一种情况(具体哪一种识具体题目而定,但不要纠结这个)AC代码如下:#include #include #include #i

2013-09-27 21:49:21 766

原创 lightoj 1140 数位DP

有个地方要注意,注意要用dp[pos][count] 不能只是dp[pos], 因为在到达pos时,有 之前就几个0的区分  所以如果只用了pos 就少了AC代码如下:#include #include #include #include using namespace std;long long dp[30][30];int digit[30];long long DF

2013-09-27 21:03:03 805

原创 uestc 1307 数位DP

注意每算一次之后不要重置dp数组,因为后面还可以用,不然的话会超时!!!!!AC代码如下:#include #include #include #include using namespace std;int digit[30];int len;long long dp[30][15];long long DFS( int pos, int pre, bool limi

2013-09-27 19:53:05 714

原创 hdu 1422 DP

求最长的大于零的子序列,由于是环,所以在末尾不上N个,当ans>=N时直接跳出AC代码如下:#include #include #include #include #include using namespace std;int cost[200010];int main(){ int N; int startfrom, ans, sum; while( sca

2013-09-25 12:59:31 624

原创 hdu 1978 DP

AC代码如下:#include #include #include #include using namespace std;int main(){ int T; int N, M; int maps[101][101]; int dp[101][101]; cin >> T; while( T-- ){ cin >> N >> M; for( int i =

2013-09-24 19:59:10 685

原创 hdu 1789 DP

AC代码如下:#include #include #include #include #include using namespace std;typedef struct{ int deadline; int score;}HW;int cmp( const void *a, const void *b ){ return ((HW*)b)->score - ((H

2013-09-22 15:26:47 860

原创 hdu 1257 DP

注意 所有的导弹系统 想用哪个就用哪个。。。。。AC代码如下:#include #include #include #include using namespace std;int main(){ int height[1000] = {30000}; int N; while( scanf( "%d", &N ) != EOF ){ int i = 1, j;

2013-09-22 10:55:05 711

原创 hdu 2830 DP

注意在代码中AC代码如下:#include #include #include #include #include using namespace std;int N, M;int temp, num[1001][1001];int height[1010];char t[1010];int main(){ while( scanf( "%d%d", &N, &

2013-09-22 10:37:27 729

原创 hdu 2870 DP

枚举a,b,c  然后就有点像1505 1506了AC代码如下:#include #include #include #include #include using namespace std;int N, M;char s[1010][1010];int dp[1010][1010]; // a b c w x y z // w -> a . b

2013-09-20 22:04:03 662

原创 hdu 2845 DP

先求每行的最大和 然后再对所有行dpAC代码如下:#include #include #include #include #include using namespace std;int dp[200010][2];int row[200010];int main(){ int N, M; while( scanf( "%d%d", &N, &M ) != EOF

2013-09-20 21:28:19 632

原创 hdu 2844 DP

AC代码如下:#include #include #include #include #include using namespace std;bool dp[100001];int main(){ int price[101], count[101]; int n, m; while( cin >> n >> m && !( n == 0 && m == 0 ) )

2013-09-20 14:55:33 621

原创 hdu 2577 DP

a[i]    与      b[i]         分别表示         输出完第i个     是大写时的最小按键数      与        是小写时的最小按键数AC代码如下:#include #include #include #include #include using namespace std;bool judge( char c ){ return

2013-09-20 14:30:11 679

原创 hdu 2571 DP

AC代码如下:#include #include #include #include #include using namespace std;#define MIN -100000000int main(){ int T; int N, M; int num[22][1010]; int dp[1010]; cin >> T; while( T-- ){

2013-09-20 11:48:24 691

原创 hdu 1505 DP

AC代码如下:#include #include #include #include #include using namespace std;int a[1010][1010];int main(){ int T, N, M; int l[1010], r[1010]; char temp[10]; cin >> T; while( T-- ){ mems

2013-09-20 10:29:39 784

原创 hdu 1864 DP

这题真是把我恶心到了,不过有个地方要注意的是,不能在flag为1后就跳出该次循环,因为还要把剩余的给输入,蛋疼啊!!!!AC代码如下:#include #include #include #include #include using namespace std;int dp[5000000];int DP( int num[], int N, int sum ){ m

2013-09-18 19:09:08 598

原创 hdu 1052 贪心

方法来自:http://www.cnblogs.com/Action-/archive/2012/07/03/2574744.html1.当田忌最慢的马比齐王最慢的马快,赢一场先。因为始终要赢齐王最慢的马,不如用最没用的马来赢它。2.当田忌最慢的马比齐王最慢的马慢,和齐王最快的马比,输一场。因为田忌最慢的马始终要输的,不如用它来消耗齐王最有用的马。3.当田忌最慢的和齐王最慢的马慢相等时

2013-09-18 17:01:01 634

转载 A* 算法入门

转自:http://www.cppblog.com/mythit/archive/2009/04/19/80492.html在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算法。 启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要

2013-09-17 20:56:23 892

原创 hdu 4509 水水

水题飘过。。。。。。AC代码如下:#include #include #include #include using namespace std;bool mark[24*60];void operator_time( int a, int b, int c, int d ){ int start, ends; start = a * 60 + b; ends = c

2013-09-17 16:38:32 620

原创 hdu 4504 母函数或者DP

这题DP或者母函数都能做,不过要注意的是计算总和要用int64  开始用int的时候一直WA真是捉急,还有一点是 注意一组测试数据 90 80 0 输出应该是1AC代码如下:母函数:#include #include #include #include using namespace std;int main(){ int A, B, t; __int64 f1[61]

2013-09-17 13:40:14 790

原创 hdu 1732 BFS

这题直接搜索就行,在搜索的时候 人走一次,如果要推箱子,则推一下箱子,然后判断新的状态是否能够存在并且是否之前出现过。。。。。。然后就AC了。。。。第一次觉得自己的代码很写的很漂亮。。。。。。真的,真心喜欢自己这次写的代码。。。。。。。。么么哒AC代码如下:#include #include #include #include #include using namespace

2013-09-16 16:38:30 854

原创 hdu 4502 DP

DP之前一定要排序,dp[j]表示工作到第j天所能获得的最大工资,如果不排序的话有问题。。。。。。什么问题自己动手画画就知道了。。。。AC代码如下:#include #include #include #include #include using namespace std;typedef struct{ int begin, end, pay;}Node;int

2013-09-16 14:26:38 771

原创 hdu 4012 状态压缩BFS

大致就是用BFS搜索所有情况,每次找到  当前状态下所能框住的最多多少个同类的字母,然后将这些标记并入当前状态,存入队列。最后表示状态的时候状态压缩就行。。。。话说这题做的时候有个坑。。。。当时初始化的时候 sizeof()里面写成了false而不是mark 哎。。。。混混成成的果然是天坑啊 啊啊啊啊啊啊,找了一晚上的bugAC代码如下:#include #include

2013-09-15 21:50:38 1380

原创 hdu 4740 搜索

模拟下就行。。。。。。。下午的时候在每次改变方向后没改变tf和df的值。。。。。这人生该是有多艰难。。。。。。T_T#include#include #include using namespace std;const int MAX_SIZE=1000+10;int n;int tx,ty,tf;int dx,dy,df;int rd[MAX_SIZE][MAX_SI

2013-09-15 19:36:50 932

原创 hdu 4739 DFS

暴力搜索。。。。。。。其实可以直接排序后找多少组正方形就可以。。。。但是不知道为什么,不知道是数据弱还是怎么的。。。。AC代码如下:#include #include #include #include using namespace std;#define MAX_SIZE 120typedef struct{ int x, y;}Point;int number

2013-09-15 19:17:46 856

原创 hdu 1548 BFS

水水的BFS,但是开始的时候把判断放在了输入得前面 WA了无数次。。。。。真是神志不清。。。。。AC代码如下:#include #include #include #include using namespace std;typedef struct{ int location; int step;}Node;int N, A, B;int maps[210];bo

2013-09-14 20:23:40 724

原创 hdu 3085 双向BFS

有个地方要注意,代码中有注释。AC代码如下:#include #include #include #include #include #include using namespace std;int N, M;bool visit[2][801][801];int maps[801][801];int gx, gy, mx, my;int z[2][2];int

2013-09-14 10:54:21 709

原创 hdu 1043 BFS

这题从结果开始往后搜,并且搜的时候要注意,记录状态的时候u变成d,l变成r,然后记录一下这些状态,最后输出的时候倒置一下就行,一直很纳闷,那个打表在我的电脑上至少用了10s,但是到杭电上1400ms就ac了,不知道为什么。。。。。。。。。。AC代码如下:#include #include #include #include #include #include #include

2013-09-14 08:28:21 732

原创 hdu 1070 水题

WA了好多次。。。。。。注意volume小于200 的情况!!!!AC代码如下:#include #include #include using namespace std;struct Node{ string name; double price; double day;}milk[1000];int cmp( const void *a, const void

2013-09-11 15:21:41 610

原创 hdu 1031 水题

AC代码如下:#include #include #include #include using namespace std;struct node{ double sum; int number;};int cmp( const void *a, const void *b ){ if( ( (struct node*)b )->sum == ( (struct no

2013-09-10 15:59:15 656

原创 hdu 1029 水题

这题主要是熟悉下map的写法AC代码如下:#include #include #include #include using namespace std;int main(){ int N; map maps; while( scanf( "%d", &N ) != EOF ){ maps.clear(); int i; for( i = 0; i < N;

2013-09-10 15:26:09 654

算法导论及课后习题与思考题答案

算法导论及课后习题与思考题答案 特别清晰,欢迎下载

2013-07-20

C++编程思想[第二卷]

C++编程思想[第1卷]的pdf,个人觉得还是比较清晰的,欢迎下载

2013-07-20

空空如也

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

TA关注的人

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