尧图网络科技 Logo 尧图网络科技
  • 首页
  • 关于我们
  • 建站服务
  • UI 设计
  • 案例展示
  • SEO 优化
  • 资讯中心
  • 联系我们

资讯详情

深度解读 · 专业分析

  • 首页
  • 资讯中心
  • /
  • 114514

最新资讯

  • 全部资讯
  • 行业动态
  • UI 设计
  • SEO 优化
  • 网站开发

114514

📅 发布时间:2026/6/19 1:12:06 👁 浏览次数:
114514

114514

#include <iostream>
#include <set>
#include <map>
#include <vector>
#include <algorithm>
using namespace std;

class SocialNetwork {
private:
// 用户 -> 好友集合
map<string, set<string>> friendships;

public:
// 添加用户
  void addUser(const string& username) {
    friendships.emplace(username, set<string>{});
  }

// 建立好友关系
  bool addFriendship(const string& user1, const string& user2) {
    if (friendships.count(user1) && friendships.count(user2)) {
      friendships[user1].insert(user2);
      friendships[user2].insert(user1);
      return true;
    }
  return false;
}

// 获取共同好友
set<string> getMutualFriends(const string& user1, const string& user2) const {
set<string> mutual;

if (!friendships.count(user1) || !friendships.count(user2)) {
  return mutual;
}

const set<string>& friends1 = friendships.at(user1);
const set<string>& friends2 = friendships.at(user2);

set_intersection(friends1.begin(), friends1.end(),
friends2.begin(), friends2.end(),
inserter(mutual, mutual.begin()));

return mutual;
}

// 好友推荐算法
vector<pair<string, int>> getFriendRecommendations(const string& username) const {
  if (!friendships.count(username)) return {};

  map<string, int> recommendationScores;
  const set<string>& userFriends = friendships.at(username);

  // 基于共同好友的推荐算法
  for (const string& friendName : userFriends) {
    for (const string& friendOfFriend : friendships.at(friendName)) {
      // 排除已经是好友的和自己
      if (friendOfFriend != username &&
        userFriends.count(friendOfFriend) == 0) {
          recommendationScores[friendOfFriend]++;
        }
      }
}

// 转换为向量并排序
vector<pair<string, int>> recommendations(
  recommendationScores.begin(), recommendationScores.end());

  sort(recommendations.begin(), recommendations.end(),
  [](const auto& a, const auto& b) {
    return a.second > b.second; // 按分数降序
  });

  return recommendations;
}

// 显示网络状态
void displayNetwork() const {
  cout << "=== 社交网络状态 ===" << endl;
  cout << "用户数量: " << friendships.size() << endl;

  for (const auto& [user, friends] : friendships) {
    cout << "\n" << user << " 的好友 (" << friends.size() << "): ";
    for (const string& friendName : friends) {
      cout << friendName << " ";
    }
  }
  cout << endl;
  }
};

int main() {
  SocialNetwork network;

  // 添加用户
  vector<string> users = {"Alice", "Bob", "Charlie", "David", "Eve", "Frank"};
  for (const string& user : users) {
    network.addUser(user);
  }

  // 建立好友关系

  network.addFriendship("Alice", "Bob");
  network.addFriendship("Alice", "Charlie");
  network.addFriendship("Alice", "David");
  network.addFriendship("Bob", "David");
  network.addFriendship("Bob", "Eve");
  network.addFriendship("Charlie", "Frank");
  network.addFriendship("David", "Eve");
  network.addFriendship("Eve", "Frank");

// 显示网络
  network.displayNetwork();

// 测试共同好友
  cout << "\n=== 共同好友分析 ===" << endl;
  auto mutual = network.getMutualFriends("Alice", "Bob");
  cout << "Alice 和 Bob 的共同好友: ";
  for (const string& friendName : mutual) cout << friendName << " ";
  cout << endl;

// 好友推荐
  cout << "\n=== 好友推荐 ===" << endl;
  auto recommendations = network.getFriendRecommendations("Alice");
  cout << "给 Alice 的推荐:" << endl;
  for (const auto& [user, score] : recommendations) {
    cout << " " << user << " (共同好友数: " << score << ")" << endl;
  }

// 性能分析
  cout << "\n=== 性能分析 ===" << endl;
  cout << "算法复杂度分析:" << endl;
  cout << "共同好友查找: O(min(n, m)) - 使用set_intersection" << endl;
  cout << "好友推荐: O(d2) - d是平均好友数" << endl;
  cout << "空间复杂度: O(n + e) - n用户数, e边数" << endl;

return 0;
}

相关新闻

ZR 2025 十一集训 Day 8

ZR 2025 十一集训 Day 8

2026/6/18 13:54:05 查看详情
2025 云南旅游旅行社最新推荐排行榜:权威口碑榜单助你避开消费陷阱选靠谱服务商

2025 云南旅游旅行社最新推荐排行榜:权威口碑榜单助你避开消费陷阱选靠谱服务商

2026/6/11 20:04:09 查看详情
DeepSeek+SpringAI完成流式对话

DeepSeek+SpringAI完成流式对话

2026/6/18 18:55:20 查看详情
智慧树自动刷课工具:3分钟快速上手的高效学习自动化方案

智慧树自动刷课工具:3分钟快速上手的高效学习自动化方案

2026/6/19 1:08:50 查看详情
华硕笔记本散热优化:3种智能风扇控制策略让电脑更安静高效

华硕笔记本散热优化:3种智能风扇控制策略让电脑更安静高效

2026/6/19 1:08:37 查看详情
PowerPC 601浮点异常处理:FPSCR寄存器与IEEE 754标准实践

PowerPC 601浮点异常处理:FPSCR寄存器与IEEE 754标准实践

2026/6/19 1:08:50 查看详情
Token自由:本地AI协议适配器实现跨工具模型调度

Token自由:本地AI协议适配器实现跨工具模型调度

2026/6/19 1:08:50 查看详情
嵌入式多路ADC高效采集:MC68336 QADC模块原理与实战指南

嵌入式多路ADC高效采集:MC68336 QADC模块原理与实战指南

2026/6/19 1:08:50 查看详情
PHARL:基于物理感知的跌倒风险分析技术解析

PHARL:基于物理感知的跌倒风险分析技术解析

2026/6/19 1:06:27 查看详情
行星盘动力学与分子谱线诊断技术解析

行星盘动力学与分子谱线诊断技术解析

2026/6/19 0:01:24 查看详情
2026年成都GEO优化机构怎么选?全维度实用指南 - 刘向阳而生

2026年成都GEO优化机构怎么选?全维度实用指南 - 刘向阳而生

2026/6/19 0:01:39 查看详情
Akagi终极指南:5分钟掌握智能麻将AI助手的完整使用教程

Akagi终极指南:5分钟掌握智能麻将AI助手的完整使用教程

2026/6/19 0:01:39 查看详情
从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据

从Landsat到高分系列:手把手教你选择适合自己项目的遥感卫星数据

2026/6/18 19:44:15 查看详情
福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一

福州空调维修上门加氟移机空调不制冷、推荐本地老牌鑫盛达、冷顺安 - 我叫一

2026/6/18 22:29:08 查看详情
嵌入式调试器组件化界面与拖拽交互技术详解

嵌入式调试器组件化界面与拖拽交互技术详解

2026/6/18 22:19:33 查看详情
YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

YOLOv11涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇| 引入CMGF 引导特征融合机制,实现对不同模态特征的自适应增强与高效融合,助力多模态目标检测,小目标检测或分割有效涨点

2026/6/18 22:29:00 查看详情
E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

E-E-A-T 成第一权重:2027 年无经验内容将被彻底淘汰

2026/6/18 23:21:38 查看详情
深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

深圳福田园岭老小区搬家公司推荐 经验足师傅高效搬运攻略 - 从来都是英雄出少年

2026/6/18 22:29:04 查看详情

关于尧图

立足北京本地的一站式网站建设服务与设计教学平台,深耕企业网站定制开发、全网 SEO 优化及网络推广服务。

快速链接

  • 关于我们
  • 建站服务
  • 案例展示
  • 资讯中心

服务项目

  • 企业官网定制
  • UI 界面设计
  • SEO 优化推广
  • 移动端适配

联系方式

电话:400-XXX-XXXX

邮箱:info@zskr.cn

地址:北京市朝阳区 XXX 路 XX 号

© 2026 尧图网络科技 版权所有 | 京 ICP 备 XXXXXXXX 号