【Tsinghua】无线广播(broadcast)

2023-11-05 04:48

本文主要是介绍【Tsinghua】无线广播(broadcast),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个BFS。


无线广播(broadcast)

描述

某广播公司要在一个地区架设无线广播发射装置。该地区共有n个小镇,每个小镇都要安装一台发射机并播放各自的节目。

不过,该公司只获得了FM104.2和FM98.6两个波段的授权,而使用同一波段的发射机会互相干扰。已知每台发射机的信号覆盖范围是以它为圆心,20km为半径的圆形区域,因此,如果距离小于20km的两个小镇使用同样的波段,那么它们就会由于波段干扰而无法正常收听节目。现在给出这些距离小于20km的小镇列表,试判断该公司能否使得整个地区的居民正常听到广播节目。

输入

第一行为两个整数n,m,分别为小镇的个数以及接下来小于20km的小镇对的数目。 接下来的m行,每行2个整数,表示两个小镇的距离小于20km(编号从1开始)。

输出

如果能够满足要求,输出1,否则输出-1。

输入样例

4 3
1 2
1 3
2 4

输出样例

1

限制

1 ≤ n ≤ 10000

1 ≤ m ≤ 30000

不需要考虑给定的20km小镇列表的空间特性,比如是否满足三角不等式,是否利用传递性可以推出更多的信息等等。

时间:2 sec

空间:256MB

提示

BFS


AC的代码:

#include <stdio.h>
#include <malloc.h>int **map=NULL;
int *qUeue=NULL;
int *visited=NULL;
int head,tail;
int n,m;//入队
void EnQueue(int data)
{//tail 始终指向一个空位qUeue[tail]=data;tail++;
}//出队
void DeQueue()
{head++;
}//判空
bool IsEmpty()
{if(head==tail)return true;return false;
}//取队首(不出队)
int getFront()
{return qUeue[head];
}//取第一个邻接点,有就返回第一个邻接点,否则返回-1
int GetFirstNeighbor(int v)
{int i;for(i=1;i<v;i++)if(map[v][i]==1)return i;for(i=v+1;i<=n;i++)if(map[i][v]==1)return i;return -1;
}//取 (v,w) 的下一个邻接点,有就返回第一个邻接点,否则返回-1
int GetNextNeighbor(int v,int w)
{int i;if(w<v){for(i=w+1;i<v;i++)if(map[v][i]==1)return i;for(i=v+1;i<=n;i++)if(map[i][v]==1)return i;}if(v<w){for(i=w+1;i<=n;i++)if(map[i][v]==1)return i;}return -1;
}//visited[i]==-1 表示安装了频段1,visited[i]==0 表示还没有安装广播,visited[i]==1 表示安装了频段2.
int bfs()
{head=tail=1;int v,w;v=1;visited[v]=1;EnQueue(v);  //将v进队while(IsEmpty()==false){v=getFront();  //取队首元素至v(注意:不出队)w=GetFirstNeighbor(v);  //取v的第一个邻接点至wwhile(w!=-1){if(visited[w] == visited[v])  return -1;if(visited[w] == 0)    {visited[w] = -visited[v];   EnQueue(w);}w=GetNextNeighbor(v, w);  //取下一个邻接点}DeQueue();  //出队}return 1;
}int main()
{scanf("%d%d",&n,&m);int array=n+2;//动态申请二维数组map=(int **)malloc(sizeof(int *) * array);int i;for(i=1;i<array;i++)*(map+i)=(int *)malloc(sizeof(int) * i);//动态申请一维数组visited=(int *)malloc(array*sizeof(int));qUeue=(int *)malloc(array*sizeof(int));int a,b;int tmp;//保证a<=b,只记录邻接矩阵的一半for(i=0;i<m;i++){scanf("%d%d",&a,&b);if(b>a){tmp=a;a=b;b=tmp;}map[a][b]=1;}int result=bfs();printf("%d\n",result);return 0;
}





这篇关于【Tsinghua】无线广播(broadcast)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

无线领夹麦克风什么牌子好用?揭秘领夹麦克风哪个牌子音质好!

随着短视频行业的星期,围绕着直播和视频拍摄的电子数码类产品也迎来了热销不减的高增长,其中除了数码相机外,最为重要的麦克风也得到了日益增长的高需求,尤其是无线领夹麦克风,近几年可谓是异常火爆。别看小小的一对无线麦克风,它对于视频拍摄的音质起到了极为关键的作用。 不过目前市面上的麦克风品牌种类多到让人眼花缭乱,盲目挑选的话容易踩雷,那么无线领夹麦克风什么牌子好用?今天就给大家推荐几款音质好的

如何选择SDR无线图传方案

在开源软件定义无线电(SDR)领域,有几个项目提供了无线图传的解决方案。以下是一些开源SDR无线图传方案: 1. **OpenHD**:这是一个远程高清数字图像传输的开源解决方案,它使用SDR技术来实现高清视频的无线传输。OpenHD项目提供了一个完整的工具链,包括发射器和接收器的硬件设计以及相应的软件。 2. **USRP(Universal Software Radio Periphera

龙芯小本debian无线(wifi)连接设置

本人有一台龙芯8089b小本,已被我重装了debian系统。由于学习nodeJs,所以想用它当node服务器; 正准备下载node等时发现命令模式下不能自动连接无线,于是网上找来一篇debian连接wifi的文章, 来源参考http://blog.163.com/wangpeng922@126/blog/static/64133083201211131100539/ 查看网卡信息:#

android面试:如何理解 Android 中的广播?

在 Android 中,广播是一种用于在应用程序之间传递消息的机制。它允许应用程序发送和接收全局消息,通常用于通知其他应用或组件某些事件的发生。广播可以是系统广播(由系统发送)或自定义广播(由应用程序发送)。 广播的主要特点: 异步通信:广播是一种异步的通信方式,发送广播的应用不需要等待接收应用的响应。 全局可见:广播可以被系统中的任何应用程序接收,适合用于跨应用的消息传递。 轻量级:广播

Android 接收系统广播,开机启动Service,SMS,Battery

本文内容摘自《疯狂Android讲义 第3版》李刚 著 自动开启的Service: package shortcut.song.com.myapplication;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;im

Android Ordered Broadcast 有序广播

代码设置IntentFilter: IntentFilter intentFilter = new IntentFilter();intentFilter.setPriority(15);intentFilter.addAction("shortcut.song.com.myapplication.MY_BROADCAST");intentFilter.addCategory

Android BroadcastRecevier广播消息

代码注册Receiver @Overrideprotected void onCreate(Bundle savedInstanceState) {IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("");MyBroadcast myBroadcast = new MyBroadcast();regi

计算机三级网络技术总结 第八章无线局域网设备安装与调试

IEEE802.11最初定义的三个物理层包括了两个扩频技术和一个红外传播规范,无线传输的频道定义在2.4GHz的ISM波段内IEEE802.11无线标准定义的传输速度是1Mbps和2Mbps,可以使用FHSS和DSSS技术IEEE802.11在MAC层上引入了一个新的RTS/CTS选项点对点模式是指无线网卡和无线网卡之间的通讯方式在点对点模式中最多可连接256台PC基本模式是无线和有线网络并存的通

Flink使用Broadcast State实现流处理配置实时更新

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 本文作者时延军发表在http://shiyanjun.cn,如果你也在使用Broadcast State,那么可以参考一下。 Broadcast State是Flink支持的一种Operator State。使用Broadcast State,可以在Flink程序的一个Stream中输入数

2024全球广播摄像机市场前景如何?IP网络化云端融合趋势加强

一、前言 当前,全球广播电视用户持续向流媒体迁移。大多数国家广播电视台推出独立流媒体平台,流媒体趋势日渐加强。与奈飞等非广电系流媒体平台只提供点播服务不同,广电系流媒体平台一般提供电视频道直播服务、电视回看服务、视频点播服务,与传统电视渠道形成互补,而这些流媒体平台与网络媒体平台所能提供的视频服务存在着非常重合的区域。 (1)流媒体时代加速广播摄像机专业影视化发展 全球广电系流媒体平台竞争力