![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//**************************************
Problem: HEU 1041 Compromise
Time: 0.0000 s
Memory: 560 k
Accepted Time: 2009-04-13 20:27:14
Tips: 求最长公共子序列
**************************************/
#include <stdio.h>
#include <string.h>
int main()
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
{
char a[150][40],b[150][40];
while(1)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
int ca=1,cb=1,rat;
while(1)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
rat=scanf("%s",a[ca]);
if(rat==EOF)return 0;
if(strcmp(a[ca],"#")==0)break;
ca++;
}
while(1)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
rat=scanf("%s",b[cb]);
if(rat==EOF)return 0;
if(strcmp(b[cb],"#")==0)break;
cb++;
}
ca--;cb--;
int table[150][150],i,j;
for(i=0;i<=ca;i++)table[0][i]=0;
for(i=0;i<=cb;i++)table[i][0]=0;
char c[150][40];
int count=0;
for(i=1;i<=ca;i++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
for(j=1;j<=cb;j++)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(strcmp(a[i],b[j])==0)table[i][j]=table[i-1][j-1]+1;
else if(table[i-1][j]>table[i][j-1])table[i][j]=table[i-1][j];
else table[i][j]=table[i][j-1];
}
}
i=ca;j=cb;
while(i!=0&&j!=0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
if(strcmp(a[i],b[j])==0)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
strcpy(c[count++],a[i]);
i--;j--;
}
else if(table[i-1][j]>table[i][j-1])i--;
else j--;
}
for(i=count-1;i>0;i--)printf("%s ",c[i]);
printf("%s\n",c[0]);
}
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
posted @
2009-04-13 20:42
主函数
阅读(
192)
评论()
编辑
收藏
举报