XTU 1184 Tourist 1

2023-12-15 17:59
文章标签 xtu 1184 tourist

本文主要是介绍XTU 1184 Tourist 1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Tourist 1

[ Submit Code ] [ Top 20 Runs ]
Acceteped : 79   Submit : 214
Time Limit : 1000 MS Memory Limit : 65536 KB
 

Description

题目描述

Eric喜欢旅行,今年暑假终于可以有几天时间出去玩了。他计划在去3个不同的城市,而且不想重复去相同的城市,最后回到出发的城市,他想知道怎么走可以让差旅费用降到最低? 我们把城市编号为0~3,Eric总从0号城市出发。

输入

第一行是一个整数K,表示样例的个数。 每个样例占4行,每行4个整数Xij,第i行第j列个整数表示从城市i到城市j所需要的旅费,单次费用不超过1000。i = j 时,Xij = 0。

输出

每行输出一个样例的结果,包括两行,第一行是差旅的总费用,第二行是3个城市的编号序列,每个城市编号之间用一个空格隔开,表示旅行的路线,如果存在多条线路都是最少花费,请输出字典序输出这些线路,每个线路一行。

样例输入
1
0 1 1 1
2 0 2 2
3 3 0 3
4 4 4 0
样例输出
10
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
 

Sample Input

 

Sample Output

 

Source

 
[ Submit Code ] [ Top 20 Runs ]


思路:每个城市只能去一次,只有3个城市,因此最多只有3!种情况。故将所有情况枚举一遍,求出最优解,最后再判断所有情况是否是最优解,是的话就输出,不是就忽略。详见代码。

AC代码如下:

#include <bits/stdc++.h>
using namespace std;
int w[4][4], d[4][4][4];int main(){ios::sync_with_stdio(false);cin.tie(0);int T;scanf("%d", &T);while (T--){for (int i=0; i<4; ++i)for (int j=0; j<4; ++j)scanf("%d", &w[i][j]);int ans = INT_MAX;for (int i=1; i<4; ++i)for (int j=1; j<4; ++j)for (int k=1; k<4; ++k)if (i!=j && j!=k && i!=k){d[i][j][k] = w[0][i]+w[i][j]+w[j][k]+w[k][0];if (d[i][j][k] < ans)ans = d[i][j][k];}printf("%d\n", ans);for (int i=1; i<4; ++i)for (int j=1; j<4; ++j)for (int k=1; k<4; ++k)if (i!=j && j!=k && i!=k && d[i][j][k]==ans)printf("%d %d %d\n", i, j, k);}return 0;
}

这篇关于XTU 1184 Tourist 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/497345

相关文章

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

XTU 1233 n个硬币连续m个正面个数(dp)

题面: Coins Problem Description: Duoxida buys a bottle of MaiDong from a vending machine and the machine give her n coins back. She places them in a line randomly showing head face or tail face o

HIHO #1184 : 连通性二·边的双连通分量

题目链接 Tarjan算法,介绍可以看题目讲解,很好很清楚 无向图边的双联通分量的定义:对于一个无向图的子图,当删除其中任意一条边后,不改变图内点的连通性,这样的子图叫做边的双连通子图。而当子图的边数达到最大时,叫做边的双连通分量。 或者说,对于一个连通图,如果任意两点至少存在两条”边不重复”的路径。也就是要去每条边至少在一个简单的环中,也就是说所有的边都不是桥 同样是2个方法: 1)题

UVA10099 - The Tourist Guide(floyd + 最小值的最大化)

UVA10099 - The Tourist Guide(floyd + 最小值的最大化)  UVA10099 - The Tourist Guide 题目大意:  给一无向图,图上的点代表城市,边代表路,每条边上的权值代表的是这条路上的巴士的最大乘客数,作为导游,给定起点和终点,和负责的游客,问需要的最少的趟数可以将这个游客送到终点。 解题思路:  路径上最小值的最大化。减少趟数,

XTU 1185 Bob's Problem

Bob's Problem Accepted : 53 Submit : 356Time Limit : 1000 MS Memory Limit : 65536 KB 题目描述 Bob今天碰到一个问题,他想知道x3+y3 = c 是否存在正整数解? 输入 第一行是一个整数K(K≤20000),表示样例的个数。 以后每行一个整数c(2≤c≤109) 输出 每行输出一个样例的结果,

poj_1184_BFS(?可以不用吧,待改…

题目描述:    给一个初始序列,光标停在序列第一个位置。有6个键盘操作分别做左右移动,交换首末和加减操作,求如何用最短的操作组合数来令初始序列达到某个序列。   题目思路:    BFS。    待改——代码有点不伦不类。   代码: #include <stdio.h> #include <stdio.h> #include <math.h> //#include <time.h> //#i

xtu oj 1353 Digit String

题目描述 小明获得了一些密码的片段,包含0∼9,A∼F 这些字符,他猜这些是某个进制下的一个整数的数码串。 小明想知道从2到16进制中,哪些进制下,这个数码串的对应的十进制整数值,等于n? 输入 存在不超过1000个样例,每行一个样例。 每行包括两部分,数码串(串长不超过31),整数n(1≤n≤109) 输出 每行输出一个样例的结果。 如果存在多个解,输出最小的那个进制。 如果没有满足的

xtu oj 1233 Cycle Matrix 2.0

题目描述 给定N,输出一个N*N的矩阵,矩阵为N层,每层是一个字符,从A到Z。 比如说N=3,矩阵为 CCCCCCBBBCCBABCCBBBCCCCCC 输入 第一行是一个整数K(K≤50),表示样例数。 每个样例占1行,为一个整数N(1≤N≤26)。 输出 每个样例输出对应的矩阵,行尾没有多余的空格。 样例输入 3123 样例输出 ABBBBABBBB

xtu oj 1150 n!进制 2.0

题目描述 n!进制是指每i位的权值是(i+1)!,每一位的系数为0~i+1。 比如n!进制的21 = 2*2! + 1*1! = 5。给你一个10进制数,求其n!进制的值。 输入 每行一个10进制的整数n,0≤n≤3,628,799。 输出 每行输出一个样例的结果。 样例输入 01101003628799 样例输出 011204020987654321 AC代码

xtu oj 1162 奇偶校验

题目描述 奇偶校验是一种在通讯中经常使用的,用来确认传输的字节是否正确的手段。 对于一个BYTE(8BIT),我们使用0~6bit来存储数据,称为数据位,第7位存储奇偶校验位。 如果数据位有偶数个1,那么第7位为0,否则为1。现给您一个字节表示的整数n(0~255),请计算一下它是否满足奇偶校验的要求。 输入 每行一个整数n(0≤n≤255),如果n为-1,表示输入结束,这个样例不需要处理。