//2544 G++ #include #define N 201#define INF 100000 int g[N][N],bz[N],dist[N],s,t,n,m;void Dijkstra(int s){ int i,j,min,k,x; for (i=1;i#define...
分类:
其他好文 时间:
2014-08-11 23:59:03
阅读次数:
439
#include #define N 205#define INF 10000000int g[N][N],bz[N],dist[N],s,t,n,m;void Dijkstra(int s){ int i,j,min,k,x; for (i=1;i<=n;i++) { d...
分类:
其他好文 时间:
2014-08-11 23:57:13
阅读次数:
371
/*最小生成树,用Prim算法使用BZ数组*/#include#define INF 200int g[110][110],bz[110],low[110];int min,ans,Q,n,a,b;void prim(){ int i,j,k,x; for (i=1;i<=n;i+...
分类:
其他好文 时间:
2014-08-11 23:53:13
阅读次数:
294
//1874#include #define N 205#define INF 10000000int g[N][N],bz[N],dist[N],s,t,n,m;void Dijkstra(int s){ int i,j,min,k,x; for (i=1;iw) g[x...
分类:
其他好文 时间:
2014-08-11 23:47:42
阅读次数:
268
// poj 2421 prim/*最小生成树,用Prim算法有n个城镇,已知每两个城镇的距离,其中某些城镇之间的道路已经修好,要求用最少的路径修完剩下的城镇之间的路*/#include#define InF 2000int g[110][110],bz[110],low[110];int min,...
分类:
其他好文 时间:
2014-08-11 21:09:12
阅读次数:
237
#include // poj 1258 10.1.5.253 1505using namespace std; #define N 105 // 顶点的最大个数 (多写 int a[N][N],low[N],n,ans;int min(int x,int y){ ...
分类:
其他好文 时间:
2014-08-11 21:08:32
阅读次数:
198
#include int main(){ int n; while(scanf("%d",&n),n) { int a[101],min,k,i,t; k=0; for(i=0;i<n;i++) scanf("%d",&a[i]); min=a[0]; for(i=1;i<n;i++) if(a[i...
分类:
其他好文 时间:
2014-08-11 20:30:12
阅读次数:
189
实现一个栈,除了push、pop操作外,还包括函数min实现返回栈中最小值的功能,要求时间复杂度均为O(1)
//思路:增加一个辅助栈,将每次入栈操作后栈的最小元素(之前最小元素和新入栈元素的较小值)都保存在辅助栈里...
分类:
其他好文 时间:
2014-08-11 18:05:02
阅读次数:
193
题目大意:
一条街上有很多个餐厅,现在要在n个餐厅中选取m个作为仓库。
使得其他的餐厅到这些仓库的距离的和最小。
思路分析:
状态方程: dp [i] [j] 表示 前 j 个餐厅已经建了 i 个仓库。
转移方程: dp[i] [j] = min ( dp[i-1] [k] + cost[k+1][j] ) ...cost[ p ][ q ] 表示在p q 之间建立一个仓库...
分类:
其他好文 时间:
2014-08-11 15:05:12
阅读次数:
216
用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。
cost记录每两个村庄之间建一个邮局的最小代价。
转移方程: dp[j][i]=Min(dp[j][i],dp[k][i-1]+cost[k+1][j])
前j个村庄建i个邮局=前k个村庄建I-1个邮局+第k+1村庄到第j村庄建一个邮局的代价
...
分类:
其他好文 时间:
2014-08-11 15:02:42
阅读次数:
156