hdu5385(2015多校8)--The path(贪心,搜索)

2024-08-25 00:38

本文主要是介绍hdu5385(2015多校8)--The path(贪心,搜索),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:点击打开链接

题目大意:给出一个有向图,求1到其它点的最短距离,要求dis[1] < dis[2]....dis[x] ... > dis[n-1] > dis[n] (1 < x <= n)

给出符合条件的每条边的边长(1<=边长<=n)

设置vis标记点是否已经存在,从左边开始逐个搜索,如果点已经存在那么继续遍历,否则换方向遍历(从右开始遍历),因为题目保证存在输出,所以一定可以遍历完所有的。

按照被遍历到的时间也就是dis的值,然后在按照(u,v) = abs(dis[u]-dis[v]),推出边的长度。

注意边的长度是1到n,如果值是0,也是设为n

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std ;
#define maxn 100010
struct node{int u , v , next ;
}edge[maxn] , p[maxn] ;
int head[maxn] , cnt ;
int vis[maxn] , dis[maxn] , num , n , l , r ;
void add(int u,int v) {edge[cnt].v = v ; edge[cnt].next = head[u] ;head[u] = cnt++ ;
}
void solve(int &i,int k) {while( i > 0 && i <= n ) {if( !vis[i] ) return ;if( dis[i] != -1 ) return ;dis[i] = num++ ;for(int j = head[i] ; j != -1 ; j = edge[j].next) {vis[edge[j].v] = 1 ;}i += k ;}
}
int main() {int t , m , v , i , j , k ;//freopen("1006.in","r",stdin) ;//freopen("111.out","w",stdout) ;scanf("%d", &t) ;while( t-- ) {scanf("%d %d", &n, &m) ;memset(head,-1,sizeof(head)) ;memset(vis,0,sizeof(vis)) ;memset(dis,-1,sizeof(dis)) ;cnt = 0 ;for(i = 0 ; i < m ; i++) {scanf("%d %d", &p[i].u, &p[i].v) ;add(p[i].u,p[i].v) ;}vis[1] = 1 ;l = 1 ; r = n ;num = 0 ;while(l <= r) {solve(l,1) ;solve(r,-1) ;}for(i = 0 ; i < m ; i++) {k = abs(dis[ p[i].u ]-dis[ p[i].v ]) ;if( !k ) k = n ;printf("%d\n", k ) ;}}return 0 ;
}


这篇关于hdu5385(2015多校8)--The path(贪心,搜索)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

C# ComboBox下拉框实现搜索方式

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教... 目录C# ComboBox下拉框实现搜索步骤一步骤二步骤三总结C# ComboBox下拉框实现搜索步骤一这

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc

usaco 1.3 Barn Repair(贪心)

思路:用上M块木板时有 M-1 个间隙。目标是让总间隙最大。将相邻两个有牛的牛棚之间间隔的牛棚数排序,选取最大的M-1个作为间隙,其余地方用木板盖住。 做法: 1.若,板(M) 的数目大于或等于 牛棚中有牛的数目(C),则 目测 给每个牛牛发一个板就为最小的需求~ 2.否则,先对 牛牛们的门牌号排序,然后 用一个数组 blank[ ] 记录两门牌号之间的距离,然后 用数组 an