摘要: 许久没有写关于算法的题目,昨天捡起来,看了图论的部分算法,今天算是看了背包问题的三种常见情况,01背包,完全背包,多重背包,然后回来便随便找了个题做了下,依然如此,为了是心理舒服,依然把此解题的背包问题发表一下,关于背包问题的三种情况给予解释:以下将对题目代码给予:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602代码文档:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>int f[1100];int vol[1100],v 阅读全文
posted @ 2012-03-02 22:27 world_ding 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 此题是一个与我的上篇文章 “东东的女朋友” 极为类似的算法的一道题,依然是贪心算法的应用,针对于此题,需要注意的是不可以同时移动的情况(Impossible)的第3种,和可以移动(Possible)的情况的第二种(见下图):下面代码及解释如下:View Code #include <stdio.h>#include <stdlib.h>#include <string.h>struct node{ int s; int t;}count[1000];int flag[1000];int cmp(const void *a ,const void *b){ s 阅读全文
posted @ 2011-12-08 10:31 world_ding 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zzuli.edu.cn/showproblem?problem_id=1457此题有贪心算法的感觉,只是处理方法有些注意而已,应该说是贪心算法的一个小小应用而已,贪心算法的PPt讲解链接:http://wenku.baidu.com/view/33b4a0fdc8d376eeaeaa3184.html此题代码如下:View Code #include <stdio.h>#include <string.h>int a[1100];int b[1100];int main(){ int max,i,j,k,n; while(scanf(& 阅读全文
posted @ 2011-12-07 10:18 world_ding 阅读(203) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://acm.zzuli.edu.cn/showproblem?problem_id=1118刚看此题时也是不知道怎么想,可能是自己算法还不够精,于是便百度一下解题方法,看到之后,感觉此题并不是要求很高深得算法,一般般处理即可,于是凭感觉小心翼翼的写了一下代码,虽然不知道是不是有点罗嗦,但是感觉能够得到正确答案,于是提交,幸运的是1A了;代码如下:View Code #include <stdio.h>int ans(int a,int b)///此函数是递归处理的,在递归结束的时候就能得到所需答案{ int i,j; if(b%2==0) { ... 阅读全文
posted @ 2011-11-13 19:46 world_ding 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zzuli.edu.cn/showproblem?problem_id=1090本题很简单,但不知道为什么,只有一个人做,大意就是求平面内2条直线的关系,a,重合,b,平行,c,相交:此题有一点注意的地方就是,要知道当斜率不存在时注意处理;代码如下:View Code #include <stdio.h>#include <math.h>int main(){ int n,x1,y1,x2,y2,x3,y3,x4,y4,i; double k1,k2,xx1,yy1; scanf("%d",&n); print 阅读全文
posted @ 2011-11-13 10:53 world_ding 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zzuli.edu.cn/showproblem?problem_id=1089好久没怎么写题了,手生了,这题想了很久,不过在暑假集训时感觉这就是水题而已,不过虽然时间长,但结果是1A,感觉还是蛮爽的,很有成就感的。所以纪念一下:View Code #include<stdio.h>#include<string.h>char str[1000];char str1[1000];char str2[1000];int main(){ int n,i1,i2,i3,j,num,k,k1,k2,len,flag; while(scanf(&q 阅读全文
posted @ 2011-11-09 22:43 world_ding 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.zzuli.edu.cn/showproblem?problem_id=1031此题大意是:写出一个只含0、1,且小于100*100的方阵,如果方针的所有的行数字之和加起来为偶数并且所有的列数和加起来是偶数,printf("OK\n");如果能通过改变一个位置达到要求的printf(“”"Change bit (%d,%d)\n");如果不能通过改变一个数字来达到此要求的输出printf("Corrupt\n");具体做法如下,声明:一下代码的效率不高,不过在zzuli OJ上还是通过了。View Co 阅读全文
posted @ 2011-11-07 20:10 world_ding 阅读(170) 评论(0) 推荐(0) 编辑
摘要: //闲着没事,于是找来图论的题做做,开始很放松的用并查集做题,连着2题的错误,让我看到了并查集的局限性,对稠密的连通图用它会超//时,看来还是需要总结一下的:并查集应用倒很好理解,只是对于这种体型明显需要大量的次数运算,所以这是如果用并查集,很大可能就会超时了,而此时便可以考虑prim算法,或者dijkstra算法的微变型://并查集的超时代码如下:TLE代码:#include<stdio.h>#include<math.h>#include<stdlib.h>#include<string.h>struct node{ int x,y; dou 阅读全文
posted @ 2011-08-20 17:01 world_ding 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3746本来并不是看着一题的,搜代码时一不小心看到大牛说先看着题的找的规律,于是便拿来这题来看,于是惊叹发现曾经没思路的题,现在依然没思路,于是不理解的情况下,搜解释,终于搜到一句话:用KMP算法求最小循环节,这里有一个结论,最小循环节的大小为len-next[len]。于是便理解了好久,画了好几张纸,终于有所理解,于是自己按理解情况写了代码;还是有所反应的:有个大牛代码,没看,但看了解释,对循环的解释,如果看怎么循环的,可以看一下,链接:http://www.cnblogs.com/Lyush.. 阅读全文
posted @ 2011-08-18 11:29 world_ding 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 刚开始对字典树理解为0,感觉应该是相当困难的东西,于是心理上就没有做的想法了,不过庆幸的是,比赛出了字典树,于是赛后硬着头皮去理解,感觉倒有点好了,这道题倒是字典树里比较简单的题了,作为小试身手的第一个了:View Code #include<string.h>#include<stdio.h>#include<stdlib.h>typedef struct node{ int n; ////这里是代表有某个节点的字符串数 struct node *child[26]; ////字典树嘛,26个字母;}Lnode,*Link; ... 阅读全文
posted @ 2011-08-18 09:20 world_ding 阅读(186) 评论(0) 推荐(1) 编辑