前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【小码匠自习室】朋友的朋友不是朋友

【小码匠自习室】朋友的朋友不是朋友

作者头像
小码匠
发布2022-08-08 13:08:47
2270
发布2022-08-08 13:08:47
举报
文章被收录于专栏:小码匠和老码农

标签

  • 图、无向图

题目地址

Q4. 友達の友達

  • https://algo-method.com/tasks/413

問題描述

输入

输出

输出结果

输入示例 1

代码语言:javascript
复制
6 7 0
0 1
0 5
1 3
1 5
2 3
3 4
4 5

输入示例 1

代码语言:javascript
复制
2

六种朋友的关系如下面的图。

阿尔勒的朋友是学生 1 和学生 5,阿尔勒的朋友的朋友是学生 3 和学生 4。由于 阿尔勒 有两个“朋友的朋友”,我们将输出 2。

输入示例 2

代码语言:javascript
复制
5 7 2
0 2
0 3
1 2
1 4
2 3
2 4
3 4

输出示例 2

代码语言:javascript
复制
0

阿尔勒和学校所有学生都是朋友,所以朋友的朋友为:0

题解

小码匠题解

代码语言:javascript
复制
#include <bits/stdc++.h>
using namespace std;
#define endl '\n';
void coder_solution();

int main() {
    // 小码匠
    coder_solution();

    // 返回
    return 0;
}

void coder_solution() {
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    // 提升cin、cout效率
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n, m, x, a, b;
    cin >> n >> m >> x;
    vector<vector<int>> c(n);
    for(int i = 0; i < m; ++i) {
        cin >> a >> b;
        c[a].push_back(b);
        c[b].push_back(a);
    }
    unordered_set<int> ans;
    set<int> f;
    for(auto i : c[x]) {
        f.insert(i);
    }
    for(auto i : c[x]) {
        for (auto j : c[i]) {
            if (!f.count(j) && j != x) {
                ans.insert(j);
            }
        }
    }

    cout << ans.size();
}

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小码匠和老码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目地址
  • 問題描述
    • 输入
      • 输入示例 1
        • 输入示例 1
          • 输入示例 2
            • 输出示例 2
            • 题解
              • 小码匠题解
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档