2012年3月28日

GDKOI2003 最大公共子串

摘要: AOJ链接:最大公共子串这道题求多个字符串的最大公共序列(非连续)的长度,题目中说明了所有串的乘积不超过30000;题解将状态记录在一个长度为30000的数组中,使用类似编码的方式(我的理解)进行存取;和算法导论上对LCS的解法不大一样(递归而不是递推,计算量会少一些),仍然是动态规划的思想;0MS,学习了。下面的代码是看懂了书上的后,自己写的;起先觉得第47、48行的恢复多余,后来发现并不是:包含回溯的过程,需要恢复原来的下标。 1 # include <stdio.h> 2 # include <string.h> 3 4 char str[102][102]; 5 阅读全文

posted @ 2012-03-28 22:47 getgoing 阅读(407) 评论(0) 推荐(0) 编辑

poj 1008 Maya Calendar

摘要: POJ的陷阱多多。。first WA:没考虑到一年中最后一天的情况,改了,也通过了一组discuss中的数据;2~3th WA:完全忽略了题目要求第一行输出test的个数;4th WA:输出格式中日的后面没有'.'。。。彻底服了 1 # include <stdio.h> 2 3 const char habbm[20][10] = {" ", "pop", "no", "zip", "zotz", "tzec", "xul", 阅读全文

posted @ 2012-03-28 13:46 getgoing 阅读(257) 评论(0) 推荐(0) 编辑

poj 1006 Biorhythms

摘要: 直接枚举(16MS,可以接受),测试数据有点纠结。 1 # include <stdio.h> 2 3 int p, e, i, d; 4 const int add[] = {1, 23, 28, 23*28, 33, 23*33, 28*33}; 5 6 int mod(int x, int m); 7 8 int main() 9 {10 int cnt, day, sta;11 12 cnt = 0;13 while (1)14 {15 scanf("%d%d%d%d", &p, &e, &i, &d);16 ... 阅读全文

posted @ 2012-03-28 11:23 getgoing 阅读(308) 评论(0) 推荐(0) 编辑

poj 2785 4 Values whose Sum is 0

摘要: 二分枚举;也可以将两个和数组都排序,这样可以在查找时保持沿一个方向,最坏情况下复杂度为O(n),不如二分查找;计算cpd[]时,c[i] + d[j]错写成c[i]+d[i]查了半天才发现。。。 1 # include <stdio.h> 2 # include <stdlib.h> 3 4 # define MAXN 4001 5 6 int apb[MAXN*MAXN], cpd[MAXN*MAXN]; 7 int a[MAXN], b[MAXN], c[MAXN], d[MAXN]; 8 9 int cmp(const void *a, const void *b 阅读全文

posted @ 2012-03-28 02:13 getgoing 阅读(435) 评论(0) 推荐(0) 编辑

导航