UVA 216 - Getting in Line
来源:互联网 发布:python 打开文件夹 编辑:程序博客网 时间:2024/04/30 09:56
题目大意:把所有点用一条线联通,求出所有这些线中长度最短的一条
解题思路:求出这些点的全排列,并计算它的长度,记录最短长度的那排列
#include <cstdio>#include <algorithm>#include <cmath>using namespace std;int main() {int num, arr[10][2], brr[10], order[10], count = 0;while (scanf("%d", &num), num) {double min = 1000000;for (int i = 0; i < num; i++)scanf("%d%d", &arr[i][0], &arr[i][1]), brr[i] = i;do {double sum = 0;for (int i = 0; i < num - 1; i++) {int x = arr[brr[i]][0] - arr[brr[i + 1]][0];int y = arr[brr[i]][1] - arr[brr[i + 1]][1];sum += sqrt(x * x + y * y);}if (sum < min) {min = sum;for (int i = 0; i < num; i++)order[i] = brr[i];}} while (next_permutation(brr, brr + num)); //寻找出所有点的全排列中距离之和最小的序列并记录下来printf("**********************************************************\nNetwork #%d\n", ++count);for (int i = 0; i < num - 1; i++) {int x = arr[order[i]][0] - arr[order[i + 1]][0];int y = arr[order[i]][1] - arr[order[i + 1]][1];printf("Cable requirement to connect (%d,%d) to (%d,%d) is %.2f feet.\n", arr[order[i]][0], arr[order[i]][1], arr[order[i + 1]][0], arr[order[i + 1]][1], sqrt(x * x + y * y) + 16.0);}printf("Number of feet of cable required is %.2f.\n", min + 16 * (num - 1));}return 0;}
0 0
- UVa 216 Getting in Line
- Uva 216 Getting in Line
- uva 216 - Getting in Line
- uva 216 - Getting in Line
- UVa 216 - Getting in Line
- uva-216 - Getting in Line
- Uva 216 - Getting in Line
- uva 216 - Getting in Line
- UVa 216 - Getting in Line
- uva 216 Getting in Line
- UVA 216 - Getting in Line
- UVA 216 Getting in Line
- UVA 216 Getting in Line
- UVa 216 Getting in Line
- UVA 216 - Getting in Line
- uva 216 Getting in Line
- uva - 216 - Getting in Line
- uva 216 - Getting in Line
- (Java)字符串处理--equals()和equalsIgnoreCase()
- sidekiq在 Plain Ruby 项目中的使用
- 为什么默认实参总是放在函数声明中
- Restore SQL Server database in same SQL server with different name
- 如何确定抽样统计的最小样本量(附:随机抽样统计的抽样误差Excel计算表格)
- UVA 216 - Getting in Line
- email正则表达式
- Java实现 输出 任意两个数之间的斐波那契序列
- 菜鸟的安卓实习之路----解析网络XML文件
- 使用vs为按钮添加后台点击事件
- 如何确定抽样统计的最小样本量(附:随机抽样统计的抽样误差Excel计算表格)
- Java设计模式透析之 —— 单例(Singleton)
- linux gpio模拟i2c的使用/用GPIO模拟I2C总线-2 .
- android中跨进程通讯的4种方式