C语言(poj1141)

[复制链接]
查看11 | 回复2 | 2009-2-14 20:38:54 | 显示全部楼层 |阅读模式
#include
#include
#define N 222
#define M 20008
#define MAX 10000000
int a[N][N];
char s[N];
int f[N][N];
char an[M];
void dill(int i,int j)
{

if(i>j) return;

if(f[j]==-1)

{

if(i==j)

{

if(s=='(' || s==')')

printf("()");

else if(s=='[' || s==']')

printf("[]");

}

else

{

printf("%c",s);

dill(i+1,j-1);

printf("%c",s[j]);

}

}

else

{

int k=f[j];

dill(i,k);

dill(k+1,j);

}
}
int main()
{

int i,j,k,m;

int l;
scanf("%s",s);

l=strlen(s);

memset(a,0,sizeof(a));

memset(f,0xff,sizeof(f));

for(k=0;ka[i+1][j-1])

min=a[i+1][j-1];

}

else if(s=='[' && s[j]==']')

{

if(min>a[i+1][j-1])

min=a[i+1][j-1];

}

for(m=i;ma[m]+a[m+1][j])

{

min=a[m]+a[m+1][j];

f[j]=m;

}

}

a[j]=min;

}

}

}

dill(0,l-1);

printf("\n");

return 0;
}
各位大哥写一下注释
别人的程序没看懂
能看懂的大哥能写一下注释吗

回复

使用道具 举报

千问 | 2009-2-14 20:38:54 | 显示全部楼层
--b,注释当然要自己写那你也要说一下这个程序是干什么用的啊,不然要看懂太花时间了。。看这个样子似乎是acm题目?...
回复

使用道具 举报

千问 | 2009-2-14 20:38:54 | 显示全部楼层
括弧 序列 最简单的DP不懂可以去看 刘汝佳 的《算法艺术和信息学竞赛》看别人的代码学习算法是可以的,一味的研究就不好了,LZ加油 !...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行