2013年6月29日

poj1159 最大公共子串

摘要: 1 #include 2 #include 3 main() 4 { 5 int a[2][5003],n,len; 6 char s[5003]; 7 while(~scanf("%d",&n)) 8 { 9 scanf("%s",s);10 len=strlen(s);11 memset(a,0,sizeof(a));12 for(int i=1;ia[(i-1)%2][j]?a[i%2][j-1]:a[(i-1)%2][j];16 ... 阅读全文

posted @ 2013-06-29 19:55 dokc 阅读(264) 评论(0) 推荐(0) 编辑

poj2677 双调欧几里德旅行商问题

摘要: 1 int n,m,i,k,j,p; 2 main() 3 { 4 while(~scanf("%d",&n)) 5 { 6 double x[n+1],y[n+1],d[n+1][n+1],w[n+1][n+1]; 7 for(i=1;ij+1)d[i][j]=d[i-1][j]+w[i][i-1];15 if(i==j+1)16 {17 d[i][j]=d[j][1]+w[i][1];18 for(k=1;k<=i-2;k++)d... 阅读全文

posted @ 2013-06-29 19:51 dokc 阅读(187) 评论(0) 推荐(0) 编辑

矩阵链乘法 poj 1651 递归和迭代两种方法

摘要: 1 #define INF 0xffffff 2 int m[102][102],p[102],q,i,j,n,l; 3 int lookup(int i,int j) 4 { 5 int k; 6 if(m[i][j]<INF) return m[i][j]; 7 if(i==j)m[i][j]=0; 8 else 9 for(k=i;k<=j-1;k++)10 {11 q=lookup(i,k)+lookup(k+1,j)+p[i-1]*p[k]*p[j];12 if(q<m[i][j])m[i][j]=q;... 阅读全文

posted @ 2013-06-29 19:49 dokc 阅读(538) 评论(0) 推荐(0) 编辑

九度1341的三种做法 bellman-ford spfa-dfs spfa-bfs

摘要: 1 #include 2 #include 3 #include 4 #define INF 0xffffff 5 using namespace std; 6 int i,j,k,start,dest,dist[102],n,m,edge[102][102],v,pre[102]; 7 bool bellman_ford() 8 { 9 memset(pre,0,sizeof(pre));10 for(k=1;kedge[j][i]+dist[j])15 dist[i]=edge[j][i]+dist[j],pre[i]=j;16 }17 f... 阅读全文

posted @ 2013-06-29 19:21 dokc 阅读(179) 评论(0) 推荐(0) 编辑

poj1258

摘要: #include#define INF 0xffffffint n,m,i,j,k,min,cost[102][102],dist[102],pos,close[102],ans;main(){ while(~scanf("%d",&n)) { ans=0; for(i=1;idist[i]&&!close[i])min=dist[i],pos=i; ans+=dist[pos]; dist[pos]=0,close[pos]=1; for(i=1;i<=n;i++) ... 阅读全文

posted @ 2013-06-29 19:16 dokc 阅读(335) 评论(0) 推荐(0) 编辑

导航