我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: 100FY求个程序,很简单的,高手进来看下 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

vvcmoon



性别: 帅哥 状态: 该用户目前不在线
头衔: 都要走了……
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 21417
威望: 3
浮云: 4793
在线等级:
注册时间: 2006-06-07
最后登陆: 2012-12-03

5come5帮你背单词 [ diversion /dai'və:ən/ n. 转移,转向,(河流、航线等的)改道 ]


100FY求个程序,很简单的,高手进来看下

工程造价最小问题
问题描述:如果以无向网表示n个城市之间的交通网络建设规划,顶点表示城市,边上的权表示该线路的造价,试设计一个方案,使这个交通网的总造价最小。
用数据结构权值最小问题写,会的帮个忙哦

越快越好,朋友急要,熄灯前编出来的送200FY,明天中午12点以前编出来的送150FY
顶端 Posted: 2007-04-16 23:12 | [楼 主]
vvcmoon



性别: 帅哥 状态: 该用户目前不在线
头衔: 都要走了……
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 21417
威望: 3
浮云: 4793
在线等级:
注册时间: 2006-06-07
最后登陆: 2012-12-03

5come5帮你背单词 [ spine /spain/ n. 脊椎 ]


高手来帮下忙啊,无限感激
顶端 Posted: 2007-04-16 23:13 | [1 楼]
jiju84



性别: 帅哥 状态: 该用户目前不在线
头衔: 【做人要低调!!】
等级: 前途无量
家族: J&S
发贴: 6455
威望: 0
浮云: 1253
在线等级:
注册时间: 2005-03-07
最后登陆: 2010-03-18

5come5帮你背单词 [ earn /ə:n/ vt. 挣得,获得 ]


以无向网表示n个城市之间的交通网络建设规划

Hamilton图?

妙似以前建模的时候写过matlab版的.........
顶端 Posted: 2007-04-16 23:23 | [2 楼]
vvcmoon



性别: 帅哥 状态: 该用户目前不在线
头衔: 都要走了……
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 21417
威望: 3
浮云: 4793
在线等级:
注册时间: 2006-06-07
最后登陆: 2012-12-03

5come5帮你背单词 [ statue /'stætju:/ n. 雕像,塑像 ]


Quote:
引用第2楼jiju84于2007-04-16 23:23发表的:
以无向网表示n个城市之间的交通网络建设规划

Hamilton图?

妙似以前建模的时候写过matlab版的.........


只求结果
顶端 Posted: 2007-04-16 23:23 | [3 楼]
jiju84



性别: 帅哥 状态: 该用户目前不在线
头衔: 【做人要低调!!】
等级: 前途无量
家族: J&S
发贴: 6455
威望: 0
浮云: 1253
在线等级:
注册时间: 2005-03-07
最后登陆: 2010-03-18

5come5帮你背单词 [ teach /ti:t/ v. 教,讲授,教训,告诫不要做工某事 ]


求第一个城市到其它城市的最短路径的Matlab程序如下:
clear;
clc;
M=10000;
a(1,:)=[0,50,M,40,25,10];
a(2,:)=[zeros(1,2),15,20,M,25];
a(3,:)=[zeros(1,3),10,20,M];
a(4,:)=[zeros(1,4),10,25];
a(5,:)=[zeros(1,5),55];
a(6,:)=zeros(1,6);
a=a+a';
pb(1:length(a))=0;pb(1)=1;index1=1;index2=ones(1,length(a));
d(1:length(a))=M;d(1)=0;temp=1;
while sum(pb)<length(a)
  tb=find(pb==0);
  d(tb)=min(d(tb),d(temp)+a(temp,tb));
  tmpb=find(d(tb)==min(d(tb)));
  temp=tb(tmpb(1));
  pb(temp)=1;
  index1=[index1,temp];
  index=index1(find(d(index1)==d(temp)-a(temp,index1)));
  if length(index)>=2
    index=index(1);
  end
  index2(temp)=index;
end
d, index1, index2


//------------------------------------
用Floyd算法求解矩阵
用来存放每对顶点之间最短路径上所经过的顶点的序号。Floyd算法的Matlab程序如下:
clear;
clc;
M=10000;
a(1,:)=[0,50,M,40,25,10];
a(2,:)=[zeros(1,2),15,20,M,25];
a(3,:)=[zeros(1,3),10,20,M];
a(4,:)=[zeros(1,4),10,25];
a(5,:)=[zeros(1,5),55];
a(6,:)=zeros(1,6);
b=a+a';path=zeros(length(b));
for k=1:6
  for i=1:6
    for j=1:6
      if b(i,j)>b(i,k)+b(k,j)
        b(i,j)=b(i,k)+b(k,j);
        path(i,j)=k;
      end
    end
  end
end
b, path
顶端 Posted: 2007-04-16 23:26 | [4 楼]
jiju84



性别: 帅哥 状态: 该用户目前不在线
头衔: 【做人要低调!!】
等级: 前途无量
家族: J&S
发贴: 6455
威望: 0
浮云: 1253
在线等级:
注册时间: 2005-03-07
最后登陆: 2010-03-18

5come5帮你背单词 [ discount /'diskaunt/ n. 折扣,贴现(率);vt. 打折扣,忽视,怀疑 ]


第一个m文件不是偶写的
偶当时对其做了修改
效果要好
这个是无最优解的

可是没有找到...............
顶端 Posted: 2007-04-16 23:28 | [5 楼]
vvcmoon



性别: 帅哥 状态: 该用户目前不在线
头衔: 都要走了……
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 21417
威望: 3
浮云: 4793
在线等级:
注册时间: 2006-06-07
最后登陆: 2012-12-03

5come5帮你背单词 [ stride /straid/ vi. 大踏步走,跨越;n. 一大步,跨,(pl.)长足的进步 ]


Quote:
引用第4楼jiju84于2007-04-16 23:26发表的:
求第一个城市到其它城市的最短路径的Matlab程序如下:
clear;
clc;
M=10000;
a(1,:)=[0,50,M,40,25,10];
.......


确定没错么
没错的话将送上感激的FY
我是一点都看不懂
顶端 Posted: 2007-04-16 23:30 | [6 楼]
jiju84



性别: 帅哥 状态: 该用户目前不在线
头衔: 【做人要低调!!】
等级: 前途无量
家族: J&S
发贴: 6455
威望: 0
浮云: 1253
在线等级:
注册时间: 2005-03-07
最后登陆: 2010-03-18

5come5帮你背单词 [ lump /lΛmp/ n. 块,小方块,肿块;vt. 把…归并到一起 ]


Quote:
引用第6楼vvcmoon于04-16-2007 23:30发表的:


确定没错么
没错的话将送上感激的FY
我是一点都看不懂



我没有装

上面的数据是测试数据

fy不用了............

偶用不完

嘎嘎
顶端 Posted: 2007-04-16 23:32 | [7 楼]
richardxx





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 193
威望: 0
浮云: 1144
在线等级:
注册时间: 2005-10-01
最后登陆: 2009-02-28

5come5帮你背单词 [ dynamic /dai'næmik/ a. 有生气的,能活动的,有力的,动力的,动态的 ]


当,楼上的把问题都理解错了,正解应该是最小生成树,代码如下:

Copy code

// Solution by OUSAA
// Optimized with binary heap

#include <stdio.h>
#include <string.h>

#define N 1024              //节点个数

struct node                //邻接表数据结构
{
int t,v;
struct node* next;
} *adj[N],e[N*N];

struct edge                // 堆
{
int t,v;
} heap[N];

int vis[N];                    // 表示某点是否访问多
int q[N],tail;       // q indicates the position of v in heap
int sum;         // weight of MST
int n,m;                    // n is number of vertex, m is number of edges


// 插入一个节点到邻接表
void insert(int s,int t,int v,int i)
{
e[i].t=t;
e[i].v=v;
e[i].next=adj[s];
adj[s]=e+i;
}

// 输入数据
// 格式:1 2 3,表示节点1,2 之间有一条权为3的边
void input()
{
int i,s,t,v;

for (i=0;i<m;++i) {
scanf("%d %d %d",&s,&t,&v);
insert(s,t,v,i*2);
insert(t,s,v,i*2+1);
}
}

//向上更新堆
void fix_up(int b)
{
int i,k;
struct edge p;

p=heap[i=b];
while ((k=i/2)>0) {
if (heap[k].v<p.v) break;
heap[i]=heap[k];
q[heap[i].t]=i;
i=k;
}
heap[i]=p;
q[p.t]=i;
}

//向下更新堆
void fix_down()
{
int i,k;
struct edge p;

p=heap[i=1];
while ((k=i*2)<=tail) {
if (k<tail && heap[k+1].v<heap[k].v) ++k;
if (heap[k].v>p.v) break;
heap[i]=heap[k];
q[heap[i].t]=i;
i=k;
}
heap[i]=p;
q[p.t]=i;
}

// 插入一个元素或更新一个已有元素到堆
void put(int t,int v)
{
if (!q[t]) {
heap[++tail].t=t;
heap[tail].v=v;
q[t]=tail;
fix_up(tail);
}
else {
if (v>=heap[q[t]].v) return;
heap[q[t]].v=v;
fix_up(q[t]);
}
}

// 获取堆的一个元素
struct edge get()
{
struct edge p=heap[1];
heap[1]=heap[tail--];
q[heap[1].t]=1;
fix_down();
return p;
}

// prim中的更新距离表部分
void update(int u)
{
struct node* p;

p=adj[u];
while (p) {
if (!vis[p->t]) put(p->t,p->v);
p=p->next;
}
}

// prim的主过程
void solve()
{
struct edge ed;

update(1);
vis[1]=1;
while (tail) {
ed=get();
sum+=ed.v;
vis[ed.t]=1;
update(ed.t);
}

printf("The weight is %d\n",sum);
}

//输入n和m
int main()
{
scanf("%d %d",&n,&m);
input();
solve();
return 0;
}



稀疏图的prim实现,O(Elogv)。


[ 此贴被richardxx在2007-04-17 12:51重新编辑 ]
顶端 Posted: 2007-04-16 23:43 | [8 楼]
richardxx





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 193
威望: 0
浮云: 1144
在线等级:
注册时间: 2005-10-01
最后登陆: 2009-02-28

5come5帮你背单词 [ mention /'menən/ v. 提到,谈到;n. 提述,提及 ]


lz不要忘了给点FY哦,我是比较穷的。。
顶端 Posted: 2007-04-16 23:44 | [9 楼]
androslee





性别: 保密 状态: 该用户目前不在线
等级: 人见人爱
发贴: 2201
威望: 0
浮云: 1125
在线等级:
注册时间: 2005-09-18
最后登陆: 2011-12-27

5come5帮你背单词 [ fort /fo:t/ n. 要塞 ]


LZ可能是要C写的数据结构的题```

用深度搜..............................


GOOGLE 一下 '最小路径' 会有你要的,
顶端 Posted: 2007-04-16 23:51 | [10 楼]
vvcmoon



性别: 帅哥 状态: 该用户目前不在线
头衔: 都要走了……
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 21417
威望: 3
浮云: 4793
在线等级:
注册时间: 2006-06-07
最后登陆: 2012-12-03

5come5帮你背单词 [ speculative /'spekjulətiv/ a. 思索性的,投机的,冒险的 ]


Quote:
引用第9楼richardxx于2007-04-16 23:44发表的:
lz不要忘了给点FY哦,我是比较穷的。。


FY已送出
这位兄台能给点解释不
不然我同学看不懂
顶端 Posted: 2007-04-17 07:27 | [11 楼]
kangtalc



性别: 帅哥 状态: 该用户目前不在线
头衔: 揍敌客·奇犽
等级: 希望之光
家族: 万人坑恋影部落
发贴: 1723
威望: 5
浮云: 1113
在线等级:
注册时间: 2005-09-21
最后登陆: 2008-06-29

5come5帮你背单词 [ guide /gaid/ n. 指南,指导,导游,向导,路标;v. 带领,给…领路,指导 ]


顶端 Posted: 2007-04-17 08:11 | [12 楼]
richardxx





性别: 保密 状态: 该用户目前不在线
等级: 品行端正
发贴: 193
威望: 0
浮云: 1144
在线等级:
注册时间: 2005-10-01
最后登陆: 2009-02-28

5come5帮你背单词 [ wisdom /'wizdəm/ n. 智慧,古训,至理名言 ]


Quote:
引用第12楼kangtalc于2007-04-17 08:11发表的:
参考此帖,有注释~~
http://192.168.2.8/bbs/read.php?tid=341384&fpage=2


这个地方的prim和dijkstra都是O(V^2)的,只能求解密图时有用,而题目的交通建设显然是个稀疏图,所以要采用O(Elogv)的算法。

注释我等会把加上就pm你,看到你的150fy了,谢谢哦。
顶端 Posted: 2007-04-17 09:34 | [13 楼]
vvcmoon



性别: 帅哥 状态: 该用户目前不在线
头衔: 都要走了……
等级: 荣誉会员
家族: Red Devils--夢劇塲
发贴: 21417
威望: 3
浮云: 4793
在线等级:
注册时间: 2006-06-07
最后登陆: 2012-12-03

5come5帮你背单词 [ era /'iərə/ n. 纪元,时代,年代 ]


那这道题应该用prim还是用迪杰斯特拉呢
顶端 Posted: 2007-04-17 09:38 | [14 楼]
« 1 2» Pages: ( 1/2 total )
我来我网·5come5 Forum » 程序员之家

Total 0.022872(s) query 7, Time now is:03-12 03:37, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号