当前位置: 首页 > article >正文

语言月赛 202407【significance】题解(AC)

在这里插入图片描述
》》》点我查看「视频」详解》》》

[语言月赛 202407] significance

题目背景

从前有个荣光的王国,小 A 是里面的国王,他认为人活着需要有意义,所以今天他要赐予他的子民以意义。

题目描述

细心的小 A 发现,每个人的存在对于其他人来说都有着不可取代的意义。一个人的意义值定义为他的朋友朋友的朋友的个数。

小 A 的王国共有 n n n 位居民,以 1 , 2 , ⋯   , n 1, 2, \cdots, n 1,2,,n 编号。每位居民分别有 x i x_i xi 个朋友,现在小 A 想知道每位居民的意义值。

注意,朋友关系可能是单向的。即:有可能 a a a b b b 当朋友,但 b b b 不一定把 a a a 当作朋友。同时,如果一个人的朋友的朋友中有自己,则这一部分的个数不统计。

时光荏苒,朋友的联系也会散去。而我们和一个人保持连接的方式就是记住,仅此而已。

输入格式

第一行一个整数 n n n 表示小 A 王国的居民数。

接下来 n n n 行每行 x i + 1 x_i + 1 xi+1 个整数。第一个整数 x i x_i xi 表示 i i i 号居民有几个朋友,接下来 x i x_i xi 个整数分别表示他的朋友的编号。

输出格式

一行 n n n 个整数分别表示每位居民的意义值。

样例 #1

样例输入 #1

4
2 2 3
1 4
0
0

样例输出 #1

3 1 0 0

样例 #2

样例输入 #2

3
0
2 1 3
0

样例输出 #2

0 2 0

样例 #3

样例输入 #3

3
1 2
1 3
1 1

样例输出 #3

2 2 2

提示

样例 1 解释

  • 1 1 1 号居民认为他的朋友是 2 2 2 3 3 3 3 3 3 认为自己没有朋友,但 2 2 2 认为自己有一个朋友 4 4 4, 所以 1 1 1 号居民的意义值是 3 3 3
  • 2 2 2 号居民认为他的朋友是 4 4 4 4 4 4 没有朋友,所以 2 2 2 号居民的意义值是 1 1 1
  • 3 3 3 号和 4 4 4 号居民都认为自己没有朋友,所以他们的意义值是 0 0 0

样例 2 解释

  • 1 1 1 号和 3 3 3 号居民认为他们没有朋友,所以他们的意义值是 0 0 0
  • 2 2 2 号居民的朋友是 1 1 1 3 3 3 1 , 3 1,3 1,3 都认为自己没有朋友,所以 2 2 2 号居民的意义值是 2 2 2

样例 3 解释

  • 1 1 1 号居民认为他的朋友是 2 2 2, 2 2 2 认为他的朋友是 3 3 3,所以 1 1 1 号居民的意义值是 2 2 2
  • 2 2 2 号居民的朋友是 3 3 3 3 3 3 认为自己的朋友是 1 1 1,所以 2 2 2 号居民的意义值是 2 2 2
  • 3 3 3 号居民的朋友是 1 1 1 1 1 1 认为自己的朋友是 2 2 2,所以 3 3 3 号居民的意义值是 2 2 2

数据范围

  • 对于 20 % 20\% 20% 的数据, x i ≤ 1 x_i \le 1 xi1
  • 对于另外 20 % 20\% 20% 的数据,除 x 1 = n − 1 x_1 = n - 1 x1=n1 外, x i = 0 x_i = 0 xi=0
  • 对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 100 1 \le n \le 100 1n100 0 ≤ x i ≤ n 0 \le x_i \le n 0xin。保证每一行除第一个数外的其他整数 c c c 均有 1 ≤ c ≤ n 1 \leq c \leq n 1cn 且两两不同。
  • 数据保证不会出现「一个人是自己的朋友」,或者「一个人既是另一个人的朋友,又是他朋友的朋友」的情况。

AC_Code

#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int t[N]; // t[i] 表示i有多少个朋友
int g[N][N]; // g[i][j] 表示第i个居民的第j个朋友是谁
bool st[N];

int main()
{
    int n;
    cin >> n;
    for(int i = 1; i <= n; i ++)
    {
        cin >> t[i];
        for(int j = 0; j < t[i]; j ++)
        {
            cin >> g[i][j];
        }
    }


    for(int i = 1; i <= n; i ++)
    {
        memset(st, 0, sizeof st);
        int ans = 0;
        for(int j = 0; j < t[i]; j ++)
        {
            int x = g[i][j];
            st[x] = true;
            for(int k = 0; k < t[x]; k ++)
            {
                int y = g[x][k];
                st[y] = true;
            }
        }

        for(int j = 1; j <= n; j ++)
            if(i != j && st[j])
                ans ++;
        cout << ans << " ";
    }

    return 0;
}

》》》点我查看「视频」详解》》》


http://www.kler.cn/a/504865.html

相关文章:

  • HTTP1.0/1.1/2.0/3.0 的区别?
  • SpringData-Redis缓存之RedisTemplate
  • 系统架构设计师-第1章-计算机系统知识要点
  • Springboot 注解缓存使用教程
  • 【MySQL学习笔记】MySQL视图View
  • “AI 自动化效能评估系统:开启企业高效发展新征程
  • Web_HTML+CSS_First_Asignment
  • C#对动态加载的DLL进行依赖注入,并对DLL注入服务
  • 前端组件开发:组件开发 / 定义配置 / 配置驱动开发 / 爬虫配置 / 组件V2.0 / form表单 / table表单
  • linux 端口转发工具rinetd
  • Flask安全开发
  • 亚洲科技创新之夜即将闪耀CES Asia 2025首日
  • 网络安全测评质量管理与标准解读
  • Tmux复制时将内容传递到系统剪贴板
  • vue2 web 多标签输入框 elinput是否当前焦点
  • C++ 数据结构:基本概念、时间复杂度、空间复杂度
  • YOLOv9改进,YOLOv9自研检测头融合HAttention用于图像修复的混合注意力检测头
  • Leetcode 474. 一和零 多重背包问题,动态规划
  • QT 键值对集合QMap
  • 【WEB】网络传输中的信息安全 - 加密、签名、数字证书与HTTPS
  • 标准通上线标准「全文检索」功能,提升查询精准度!
  • Android控件底色蓝色无法修改、高版本无法安装app、找不到xml、找不到java文件、目录不显示等问题
  • windows下编译php源码
  • 基于PyQt - 6的医疗多模态大模型医疗研究系统中的创新构建与应用(上 .文章部分)
  • 神经网络
  • TCP 连接状态标识 | SYN, FIN, ACK, PSH, RST, URG