摘要: 题意:给出m个字符串,找出其中的最长公共子序列,如果相同长度的有多个,输出按字母排序中的第一个。思路:数据小,因此枚举第一个字符串的所有子字符串s,再一个个比较,是否为其它字符串的字串。判断是否为字串的时候,将s的字符依次与其他字符串的字符比较。#include #include #include #include #include using namespace std;const int maxm=15;const int maxlen=65;char str[maxm][maxlen]; //存储m个字符串char s[maxlen],ans[maxlen]; //s存储枚举str[0] 阅读全文
posted @ 2013-09-22 18:22 辰曦~文若 阅读(292) 评论(0) 推荐(1)
摘要: 题意:给出矩阵相乘的表达式,让你计算需要的相乘次数,如果不能相乘,则输出error。思路: 参考的网站连接:http://blog.csdn.net/wangjian8006/article/details/8905295 刚开始想到用栈的,但不知道怎么下手。后来网上查了一下,其实可以用结构体定义一个矩阵的类型,建立关于该结构体的栈,这样操作起来就方便多了。 遇到'(',无视继续;遇到字母,压入栈顶;遇到')',将栈顶前两个矩阵压出,并加上其相乘次数,再将所得的矩阵压入栈顶;这里解释这么做的原因: 注意看题目给出的表达式列表的形式,每两个矩阵相乘,左右必有一个括 阅读全文
posted @ 2013-09-22 15:28 辰曦~文若 阅读(457) 评论(0) 推荐(1)
摘要: 题意:给出f(x),g(x),h(x)的 (最高次幂+1)的值,以及它们的各项系数,求f(x)*g(x)/h(x)的余数。 这里多项式的系数只有1或0,因为题目要求:这里多项式的加减法是将系数相加/减后再模2,这样其实也就可以用异或运算来代替加减法。思路:看代码吧,水题一个,主要在于把除法转化成减法,一次一次减就行。#include #include #include using namespace std;const int maxn=2010;//f,g,h存储的是多项式的系数,sum存储的是f*g的系数以及最后余数的系数int f[maxn],g[maxn],h[maxn],sum[m. 阅读全文
posted @ 2013-09-22 10:52 辰曦~文若 阅读(535) 评论(0) 推荐(0)