uva 140 带宽

【代码超详解】UVA 140 Bandwidth(带宽)(暴力 + 剪枝,0 ms) 一、题目描述 有一个图,顶点数不超过 8 ,顶点的编号仅由大写字母 A 到 Z 组成。对这些顶点的排序是任意的。定义一个顶点 v 的带宽是与 v 相邻的顶点在顶点序列中与点 v 的最长距离。一个序列的带宽是这些距离的最大值。举例: 图一中,点 A B C D E H F G 的带宽分别是 6, 6, 1, 4, 1, 1, 6, 6 ;图二中,点 A B C D G F H E 的带宽分别是 ... 阅读详情



#include <iostream>

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cctype>
#include <cstdlib>
#include <cmath>
#define M 1000

using namespace std;

int G[M][M];
int q[27];
int Count;
int Min;
int cq[27];


void deal(char *s)
{
    int p[M];
    memset(G,0,sizeof(G));
    memset(p,0,sizeof(p));


    char vec;int fv;
    fv = 0;
    int len = strlen(s);
    for(int i = 0;i < len;i++)
    {
        char c = s[i];


        if(isalpha(c))
        {
            p[c-'A'] = 1;
             if(!fv){
               vec = c;
               fv = 1;
             }
             else
              G[c-'A'][vec-'A'] = G[vec-'A'][c-'A'] = 1;
        }
        else if(c == ';')
         fv = 0;
    }


    Count = 0;


    for(int i = 0;i < M;i++)
     if(p[i])
      q[Count++] = i;
}


int main()
{
    //freopen("in.in","r",stdin);


    char str[M];
    while(cin>>str)
    {
        if(str[0] == '#') break;


        deal(str);


        Min = 10000;


        do{
            int ma = 0;


            for(int i = 0;i < Count;i++){
               for(int j = 0;j < Count;j++){
                   if(G[q[i]][q[j]])
                   {
                      int temp = (j - i) > 0? (j-i):(i-j);
                      if(ma < temp)
                       ma = temp;
                       break;
                   }
               }
               if(ma > = Min)//已经找到Min时,当发现已有两个点的距离大于等于Min时再怎么扩展也不可能比当前解更优,剪掉
                break;
            }


            if(ma < Min)
            {
                Min = ma;
               memcpy(cq,q,sizeof(int)*Count);

            }


        }while(next_permutation(q,q+Count));


        for(int i = 0;i < Count;i++)
         printf("%c ",cq[i]+'A');
        cout<<"-> ";


        cout<<Min<<endl;
    }
    return 0;
}
Python与numpy版本兼容性排查指南 本文详细解析了Python与numpy版本兼容性问题,提供了快速诊断和解决版本冲突的实用方法。通过查看版本信息、使用官方兼容性对照表以及降级或升级环境等方案,帮助开发者有效避免常见的报错问题,如'ImportError'和'AttributeError'。文章还介绍了使用虚拟环境和requirements.txt等工程实践,确保项目依赖的稳定性。 阅读详情

相关推荐

Mamba实战:如何用Samba框架轻松搞定RGB-D显著性检测(附避坑指南)

本文提供了基于Samba框架进行RGB-D显著性目标检测的实战指南。详细解析了从环境配置、数据预处理到模型推理与可视化的全流程,并重点剖析了多模态数据融合中的常见陷阱与调试技巧,旨在帮助开发者高效部署这一基于Mamba的先进视觉模型,规避工程实践中的典型问题。

dapp9builder的博客 615

带宽(Bandwidth, UVa 140)

给出一个n(n≤8)个结点的图G和一个结点的排列,定义结点i的带宽b(i)为i和相邻结点在排列中的最远距离,而所有b(i)的最大值就是整个图的带宽。给定图G,求出让带宽最小的结点排列,如图7-7所示。 下面两个排列的带宽分别为6和5。具体来说,图7-8(a)中各个结点的带宽分别为6, 6,1, 4, 1, 1, 6, 6,图7-8(b)中各个结点的带宽分别为5, 3, 1, ...

Nicolas的博客 1165

k8s 查看cpu使用率最高的pod

在 Kubernetes 中,可以使用命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。

u010674101的专栏 3345

UVA - 140 Bandwidth(带宽)(全排列)

题意:给定图,求是带宽最小的结点排列。 分析:结点数最多为8,全排列即可。顶点范围是A~Z。 #pragma comment(linker, "/STACK:102400000, 102400000") #include<cstdio> #include<cstring> #include<cstdlib> #include<cc...

Cherrychan2014的博客 203

Anchor graph 对齐文献解读

Align then Fusion: Generalized Large-scale Multi-view Clustering with Anchor Matching Correspondences文献解读

atease0001的博客 1165

IEEE论文接收后,收到Proof邮件别慌!手把手教你48小时内搞定校样(附详细截图)

本文详细解析了IEEE论文接收后Proof校样的全流程,从邮件关键信息解码到精准修改标注,提供48小时内高效完成校样的实战指南。涵盖登录技巧、文件验证、修改标注黄金法则及九宫格检查清单,帮助作者避免常见错误,确保论文顺利发表。

weixin_30652491的博客 563

UVA 140 Bandwidth (带宽)

Problem 问题 Given a graph (V,E) where V is a set of nodes and E is a set of arcs in VxV, and an ordering on the elements in V, then the bandwidth of a node v is defined as the maximum distance

disparity_CJK的博客 1116

ZBrush 2021来了

这次给大家带来的是:zbrush2021.1.1 win安装教程 1.下载压缩包之后解压到文件夹当中,然后打开ZBrush_2021_Installer.exe进行软件安装, 如下图 2.在这里我们保持默认的简体中文版即可,然后点击确认,如下图 3.第三步我们点击前进即可,如下图 4.第四步我们来到许可协议,在这里我们点击我接受此协议,然后点击前进,如下图 5.第五步我们来到安装目录,在这里我们可以设置安装路径,如下图 6.在这里我将安装目录修改安装到E盘为例,然后点击下一

3D游戏建模 1188

UVA-140 Bandwidth 带宽

题目链接:https://vjudge.net/problem/UVA-140 题意:给出一个n(n 举例说明: 如图,最右边是无向图,下面两幅图都遵循这个连接方式,下面两幅图中,左图各结点的带宽分别是6,6,1,4,1,1,6,6。右图各结点带宽分别为5,3,1,4,3,5,1,4。 分析:n比较小,暴力求解,利用STL中next_permutation函数枚举全排列,逐个计算出

Sunshine_victory的博客 582

56、宇宙微波背景辐射(CMB)望远镜及光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统,重点介绍了交叉德拉贡系统的结构特点、偏振测量误差及其控制、以及大型地面望远镜如ACT和SPT的设计与对比。同时,总结了不同光学系统和探测器阵列的优劣势,并展望了未来发展方向,旨在为CMB研究提供更高效的工具和技术支持。

f9g0h的博客 243

汇川Easy系列PID_AT指令弹簧质量阻尼系统闭环控制仿真测试

汇川Easy系列PLC系统PID指令(温度控制PID应用编程)

RXXW_Dor的博客 764

UVA 140 带宽 Bandwidth (暴力枚举+剪枝)

解题思路:本题使用了STL中的next_permutation()函数(位于algorithm中)列举排列。先记录目前已经找到的最小带宽min_width,如果发现已经有某两个结点的距离大于或等于min_width,再怎么扩展也不可能比当前解更有,故应“剪”掉,即剪枝 #include #include #include #include #include using namespace st

持之以恒 476

Python爬虫实战:如何爬取京东商品评论数据

在本文中,我们介绍了如何使用 Python 爬虫技术爬取京东商品的评论数据。首先,我们分析了京东商品评论的 API 接口和 JSON 数据结构,然后编写了爬虫程序来抓取评论数据,并将数据保存到 CSV 文件中。接着,我们进行了一些基本的数据分析,包括评分分布和简单的情感分析。爬取京东商品评论的数据可以为电商分析、情感分析等提供有价值的信息。你可以在此基础上进行更深入的分析,挖掘更多的商业价值。希望本篇教程能够帮助你了解如何利用 Python 进行电商数据的爬取和分析!

2201_76125261的博客 1648

UVa 140 带宽

题意:参考之前讲回溯法的最后一个问题。 思路:枚举全排列,考察每一种排列下的结果。  也可以进行剪枝优化,也是参见之前讲回溯法的部分。 这里我是用二维数组g来存边关系,但顶点还是单独保存在一个数组里,然后排序,然后求排列。 这题居然交了9次,1CE1TLE1AC6WA,CE的原因是没有包含cstring,在本地没包含可以。。。TLE原因是没有注释掉freopen。WA的原因之前一直以为是

buxizhizhou530的专栏 1049

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

例题7-6 带宽 UVa140

1.题目描述:点击打开链接 2.解题思路:原来按照紫书上的

Skyline 933

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[算法竞赛入门经典]带宽 UVa 140 P309

题目都没写。。。 题目等转自https://www.cnblogs.com/devymex/p/3264538.html Time limit: 3.000 seconds 限时3.000秒 Problem 问题 Given a graph (V,E) where V is a set of nodes and E is a set of arcs in VxV, and an o...

Lord_sh的博客 470

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

uva140带宽问题

我自认为这题我做的比较精妙的地方在于求带宽的函数,我没有采用逐个比较的一般思路,而是根据位置进行直接判定最大带宽。一般思路要选定每个节点,然后将与该节点相连的节点记录下来,在排列中依次确定其距该节点的位置,取最大值作为该节点的带宽,而一个排列的带宽则是所有节点带宽的最大值,复杂度为O(n^n)。我做的复杂度要低得多,直接判断第一个位置和最后一个位置的节点在图中是否是相连的,如果是那么该排列的带宽一

monkeyduck的专栏 1573

枚举特训:带宽(UVA140)双映射,全排列枚举

解题思路:针对每一个字母,可以定义两个数组使其与连续的整数形成相互映射。接着定义两个vector,根据输入的连接形成一一对应关系,即同一个下标i,vector a[i]与b[i]相连。接着枚举排列,遍历vector得到每一个排列的带宽,并更新最小总带宽。 技巧学习: 1.双映射的巧妙应用,每一个字母用整数与之对应(我们并不需要直到每个字母具体对应哪一个整数) 2.使用双数组形成一一对应关系,...

mavises的博客 220

UVA 140 带宽

这道题的思路就是对于所有可能的排列,计算出具有最小带宽的排列。 由于如果有多个最小带宽时要输出字典序最小的排列,所以需要为字母按照字典序编号。这里我是用set来记录所有出现的字母,然后利用set里面本来就排过序的特点,为每个字母编号,再建立图。 一个剪枝的方法时,如果在寻找一个新排列的过程中,已经发现某一个节点的带宽大于等于当前最优解,则可以放弃这次排列,进行下次排列。我觉得这种情况下如果搜索到

xiaojiao_6的博客 387

UVa 140 Bandwidth 带宽

“剪枝” --本题的优化方案 可以记录下目前已经找到的最小带宽k。如果发现已经有某两个结点的距离大于或等于k,再怎么扩展也不可能比当前解更优,应当强制把它“剪”掉,就像园丁在花园里为树修剪枝叶一样,也可以为解答树“剪枝(prune)”。 除此之外,还可以剪掉更多的枝叶。如果在搜索到结点u时,u结点还有m个相邻点没有确定位置,那么对于结点u来说,最理想的情况就是这m个结点紧跟在u后面,这样的结点带...

lins的博客 216

140UVa带宽

坑啊! 注意: //1  //2  #include #include int ans[30]; int node[30]; int gra[30][30]; int numnode; int min; void ordering(int* temp,int* dis,int cur) { if(cur == numnode) { int maxbw=dis[0]; //

howlowl 248

UVa 140 带宽(Bandwidth)

给出一个最多为8个节点的图,定义节点i的带宽为i和相邻节点在将要输出排列中的最大距离,而所有节点的最大距离的最大值为这个图的带宽面求一个最少带宽的节点的排列,如果多个,输出字典序最小的排列。 搜索与回溯。 剪枝,否则可能超时。 代码易懂但有点长。 #include<bits/stdc++.h> #define LL long long #define INF 0x7fffffff us...

Inuyasha__的博客 370

uva140-带宽

此题为小白书暴力求解法的训练参考 翻译请戳 http://luckycat.kshs.kh.edu.tw/ 解题思路 回溯。可以先排序后搜索。 代码 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<algorithm> ...

anyi4391的博客 168

uva140带宽

写的比较乱,全排列 的形式 + 回溯 代码: #include #include #include using namespace std; char s[1000]; int k ;//结点个数 int v[100]; struct node{ char name; char next[15]; int len; int flag; }a[30],b[10

奋斗的Die Young 334

UVa 140 带宽 Bandwidth

暴力题目 注意一下细节应该还是很好ac的; 因为题目太多图片和字了,我就决定不排版了。 Given a graph (V, E) where V is a set of nodes and E is a set of arcs inV ×V , and an ordering on the elements in V , then the bandwidth of anode v i

J1nAB1n9的博客 480

uva 140 Bandwidth 带宽

题目大意:

qqcyclone的专栏 660
上一篇: My account
下一篇: 三分应用
count24
博客等级 码龄15年 3粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值