uva 10702 - Travelling Salesman

本文提供了一个解决UVA在线评测系统中编号为10702的问题的C++代码实现。该问题涉及寻找从起点到多个可能终点的最佳路径组合,通过动态规划方法来实现。代码详细展示了如何初始化数据结构、读取输入并最终计算出最优解。

URL: http://uva.onlinejudge.org/external/107/10702.html

AC Code:

/*
Problem ID: 10702
Solver: songyy
Start Time:
End Time:
Time Spent:
*/

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

#define INF 1000000

usingnamespace std;

int graph[100][100];
int memo[100][1000];
bool possibleEndings[100];
int C,S,E,T;

int cal(int u,int k){
int temp =-INF;
int sum =-INF;

if(memo[u][k]!=-1) return memo[u][k];

if(k==1){
for(int i=0;i<C;i++){
if(possibleEndings[i] ==true){
if(temp < graph[u][i]){
temp
= graph[u][i];
}
}
}
memo[u][k]
= temp;
return temp;
}


for(int i=0;i<C;i++){
temp
= cal(i,k-1);
if(sum < temp + graph[u][i]) sum = temp + graph[u][i];
}
memo[u][k]
= sum;
return sum;
}

int main(){
// freopen("10702_in.txt","r",stdin);

int t;

// C - # city, S - start city , E - end city, T - # of inter city travel

cin
>> C >> S >> E >> T;
while(C||S||E||T){
// printf("%d, %d, %d, %d\n",C,S,E,T);
// while(1);

// initialization
memset(possibleEndings,0,sizeof(possibleEndings));
for(int i=0;i<100;i++){
for(int j=0;j<1000;j++){
memo[i][j]
=-1;
}
}

for(int i=0;i<C;i++){
for(int j=0;j<C;j++){
cin
>> graph[i][j];
}
}

for(int i=0;i<E;i++){
cin
>> t;
possibleEndings[t
-1] =true;
}

cout
<< cal(S-1,T) << endl;

cin
>> C >> S >> E >> T;
}

// while(1);
return0;
}

转载于:https://www.cnblogs.com/flyfy1/archive/2011/04/05/2006221.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值