数据结构与算法实验2020夏第二批(中国石油大学)
PA7题解报告——无线广播(Broadcast)

目录

  1. 题目描述
  2. 题目分析
  3. 编码实现

一、题目描述

1. 描述

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

2. 输入

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

3. 输出

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

4. 例


//输入
4 3
1 2
1 3
2 4//输出
1

5. 限制

1 ≤ n ≤ 10000
1 ≤ m ≤ 30000
不需要考虑给定的20km小镇列表的空间特性,比如是否满足三角不等式,是否利用传递性可以推出更多的信息等等。
时间:2 sec
空间:256MB

6. 提示

BFS

二、题目分析

代码实现

BFS遍历整个图,如果一个点的邻接点有不同颜色则无解,如果其邻接点已染色则把这个点染色。

复杂度分析:

  • 时间复杂度: O ( n + m ) O(n+m) O(n+m)
  • 空间复杂度: O ( n + m ) O(n+m) O(n+m)

三、编码实现

说明:
下述代码全部为【数据结构与算法实验 OJ 平台】提交过的代码。

#include <cstdio>
#include <iostream>
using namespace std;const int MAXSIZE = 10005;
bool graph[MAXSIZE][MAXSIZE];class Queue
{private:int val[MAXSIZE];public:int head = 0;int tail = 0;void Push(int i){val[tail] = i;tail = (tail + 1) % MAXSIZE;}int Pop(){int res = val[head];head = (head + 1) % MAXSIZE;return res;}bool isEmpty() { return head == tail; }
};bool BFSTraverse(int n, bool judger[], bool judger2[]);int main()
{int n, m;bool judger[MAXSIZE], judger2[MAXSIZE];cin >> n >> m;for (int i = 0; i != n; ++i){judger2[i] = false;judger[i] = false;for (int j = 0; j < n; ++j){graph[i][j] = false;}}for (int i = 0; i < m; ++i){int v, w;cin >> v >> w;graph[v - 1][w - 1] = true;graph[w - 1][v - 1] = true;}if (BFSTraverse(n, judger, judger2)){cout << "1" << endl;}else{cout << "-1" << endl;}return 0;
}bool BFSTraverse(int n, bool judger[], bool judger2[])
{Queue Q;Q.Push(0);judger2[0] = true;int v, w;while (Q.isEmpty() == false){v = Q.Pop();judger2[v] = false;judger[v] = true;for (w = 0; w != n; ++w){if (!judger[w] && graph[v][w]){if (!judger2[w]){judger2[w] = true;Q.Push(w);}elsereturn false;}}}return true;
}

PA7题解报告——无线广播(Broadcast)相关推荐

  1. 无线广播(Broadcast)

    无线广播(Broadcast) Description A broadcaster wants to set up a radio broadcast transmitter in an area. ...

  2. 【Tsinghua】无线广播(broadcast)

    一个BFS. 无线广播(broadcast) 描述 某广播公司要在一个地区架设无线广播发射装置.该地区共有n个小镇,每个小镇都要安装一台发射机并播放各自的节目. 不过,该公司只获得了FM104.2和F ...

  3. 无线广播(Broadcast)【1】

    无线广播(Broadcast) https://dsa.cs.tsinghua.edu.cn/oj/course.shtml?courseid=59 描述 某广播公司要在一个地区架设无线广播发射装置. ...

  4. 清华数据结构PA7——无线广播(Broadcast)

    题目:https://dsa.cs.tsinghua.edu.cn/oj/problem.shtml?id=1148 思路很简单,选取一个无前驱的点,给定一个fm然后进行bfs,将其相邻的点给定一个与 ...

  5. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  6. B08_NumPy 广播(Broadcast)

    NumPy 广播(Broadcast) 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b ...

  7. Android中的广播Broadcast详解

    今天来看一下Android中的广播机制,我们知道广播Broadcast是Android中的四大组件之一,可见他的重要性了,当然它的用途也很大的,比如一些系统的广播:电量低.开机.锁屏等一些操作都会发送 ...

  8. Android 广播(Broadcast)

    Android 广播Broadcast 1.小声嘀咕 2.广播机制简介 3.接收系统广播 3.1动态注册 3.2静态注册 4.发送自定义广播 4.1标准广播 4.2有序广播 5.使用本地广播 1.小声 ...

  9. 无线广播相关信号(收音机)的发射与接收

    (最近在研究广播通信方面的电路,好久没有接触过了,做的时候比较迷糊,突然想起来之前在大学时候做的收音机不就是最简单的无线广播的接收嘛,就先静下来总结了一下这方面的知识点,在网上看了电路图,就把认为不错 ...

最新文章

  1. (转)HLSL,函数列表
  2. python安装包为什么这么小-python(x,y)安装好了为何还是加载不了包
  3. Excel导出显示服务器意外,C# 调用Excel 出现服务器出现意外状况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)...
  4. USACO Section 1.2 Greedy Gift Givers (简单查找)
  5. 第3章 动态规划 矩阵连乘问题
  6. php之$_SESSION的理解
  7. java Web常用过滤器
  8. 最快的摘要HASH算法测试
  9. python简单爬虫代码
  10. 旅游管理系统(包含旅游最短路径规划算法等,包含系统分析的各种uml图和界面图)
  11. 期末考试-第一章-计算机视觉综述知识整理
  12. 如何利用echarts制作地图
  13. 自顶向下与自底向上编程思想的对比
  14. 如何把电脑视频转换成MP4格式?视频转换用嗨格式
  15. 排列组合公式及排列组合算法
  16. deepin Linux 安装 tar,Linux Deepin 15.11安装更新firefox flash player
  17. 修改注册表为当前用户和默认用户添加日文输入法
  18. SSM毕设项目音乐鉴赏网站前端开发sl86x(java+VUE+Mybatis+Maven+Mysql)
  19. 51cto 检测ip地址冲突_IP地址冲突解决办法
  20. php 正则 英文开头,php 正则表达式 匹配以“XXX”开头不能以“YYY”结尾

热门文章

  1. Python突破12306最后一道防线,实现自动抢票(附源码)
  2. 技术引路,设计领跑!三星下半场的“破浪”双桨
  3. Android 魅族等SmartBar适配
  4. 已解决java.lang.ClassCastException: class java.lang.Integer cannot be cast to class java.lang.Long异常的正确
  5. 现代企业管理包括哪些内容?什么是企业管理现代化
  6. 金包银裹的月饼让中秋蒙羞
  7. python中的repmat
  8. java 排水管网 系统_排水管网系统的排水有哪些分类?
  9. 中英文分词及词性标注工具
  10. 干货,用UI自动化方式获取视频信息,请勿恶意爬虫