自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(387)
  • 收藏
  • 关注

原创 C++认识图(练习题)

给定一个 n 个顶点 m 条边的有向图。请以邻接矩阵的形式输出这一张图。【输入格式】第一行输入两个正整数 n 和 m,表示图的顶点数和边数。第二行开始,往后 m 行,每行输入两个以空格隔开的正整数 u,v,表示从顶点u到顶点v有一条边(u、v是顶点编号,数值范围是1~n)。数据保证图无重边。【输出格式】输出 n 行 n 列的邻接矩阵。第 i 行第 j 列的数为 1 则表示从顶点i到顶点j有一条边;若为 0 则表示没有直接相连的边。【输入样例】5 51 22 33 5。

2026-09-16 09:46:09 105

原创 C++ 图论入门:认识图

地铁线路、微信好友关系、社交网络、地图导航,背后全是**图**这种数据结构!本文面向零基础 C++ 初学者,从生活实例入手,讲解图论基础概念:图的定义、各类图的区分、路径 / 环 / 度 / 连通等名词,重点讲解图最基础的存储方式 ——**邻接矩阵**。包含有向图、无向图三道完整可编译例题,通俗易懂,配套示意图,帮你迈出图论学习的第一步。

2026-09-16 09:43:24 344

原创 C++03阶段练习(练习题)

【描述】给定一棵二叉树, 求该二叉树的最小深度。二叉树的最小深度就是从根结点到最近的叶结点的路径上的结点数量。【输入描述】第一行是一个正整数 n, 表示二叉树的结点个数。二叉树结点编号从 1到 n, 根结点为 1, n <= 10。接下来有 n 行, 依次对应二叉树的结点1~n。每行有两个整数, 分别表示该结点的左儿子和右儿子的结点编号。如果第一个(第二个) 数为-1 则表示没有左(右)儿子。【输出描述】输出一个整型数, 表示树的最小深度。【输入样例】72 73 64 5。

2026-09-14 10:33:49 96

原创 C++03阶段练习(一)

想象站在一棵树的右侧往里面看,你能看到哪些结点?怎么测量一棵树每一层有多宽?如何把树上全部是 0 的无用树枝剪掉?本文面向初高中 C++ 初学者,先回顾二叉树核心知识点,再讲解三道高频二叉树编程题:**二叉树右视图、二叉树最大宽度、修剪二叉树**。每道题包含题意、样例、通俗思路、完整可编译 C++ 代码、逐段解析,同时整理易错坑点与课后思考题,帮你巩固队列层序遍历、二叉树递归两大核心能力。

2026-09-14 10:31:12 127

原创 哈夫曼树与哈夫曼编码(练习题)

【描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。

2026-09-10 09:13:29 193

原创 *C++哈夫曼树与哈夫曼编码

你有没有想过,同样一段文字,有的存储占空间大,有的很小?哈夫曼树就是用来做数据压缩的经典数据结构。生活类比:把经常要用的东西放在离手更近的位置,很少用的放远一点,整体拿取总代价最小。哈夫曼树就是这个思想:**权值大(出现频率高)的叶子离根近,权值小离根远,得到最小带权路径长度WPL**。本文面向初高中C++初学者,避开晦涩学术话术,从例子入手,讲解哈夫曼树构造、WPL计算、哈夫曼变长编码,提供完整可直接编译的C++代码,附带运行样例、易错点、练习题。

2026-09-10 09:10:27 212

原创 C++二叉搜索树进阶(练习题)

如果当前节点的值在 p 和 q 的值之间(包括等于 p 或 q 的情况),那么当前节点就是 p 和 q 的最近公共祖先。如果当前节点的值大于 p 和 q 的值,说明 p 和 q 都在当前节点的左子树中,因此在左子树递归查找。如果当前节点的值小于 p 和 q 的值,说明 p 和 q 都在当前节点的右子树中,因此在右子树递归查找。//前节点的值在 p 和 q 的值之间(包括等于 p 或 q 的情况)// 查找p和q的最近公共祖先,返回找到的最近公共祖先结点指针。//指向右子结点的指针。//指向左子结点的指针。

2026-08-26 16:36:07 200

原创 C++二叉搜索树进阶

链式存储:结点用指针箭头相连,适合频繁增删;静态数组适合固定不变的树。new运算符:运行时动态创建结点;构造函数可以直接初始化结点。BST插入:递归找空位,一定要接收返回值更新根指针。BST删除分3类:叶子结点;单孩子结点;双孩子结点(右子树最小替换)。保存重复元素,新增计数cnt成员。

2026-08-26 16:34:48 13

原创 C++二叉搜索树(练习题)

给定一棵n个结点的二叉搜索树,要求其中第k小的值(k<=n)。数据保证输入的是二叉搜索树。【输入描述】第一行是一个整数 n, 表示二叉树的结点个数。二叉树结点编号从 1到 n(1<= n <= 10) , 根结点为 1。接下来有 n 行, 依次对应二叉树的 n 个结点。每行有3个整数, 分别表示该结点的值、左儿子和右儿子的结点编号。如果第2个(第3个) 数为-1 则表示没有左(右) 儿子。最后一行一个整数表示k(k<=n)。【输出描述】一个整数表示二叉搜索树中第k小的值。

2026-08-17 08:52:49 212

原创 C++二叉搜索树

int ls,rs;//ls:左孩子结点编号,rs:右孩子结点编号char value;//保存构建的二叉树,下标1开始放//后序序列//中序序列int p = 1;//在tree[]中放入结点的位置结构体只需要存储每个结点的值,以及左右孩子编号。int value;//结点的值int left;//左子结点的下标int right;//右子结点的下标101int value;//结点的值 int left;//左子结点的下标 int right;//右子结点的下标 };

2026-08-17 08:51:12 338

原创 C++二叉树二(练习题)

给出一棵二叉树的先序与中序排列。求出它的深度。(约定树结点用不同的大写字母表示,长度<=8)。二叉树深度的定义: 从根结点到最远叶结点依次经过的结点个数(含根、叶结点)。【输入描述】 两行,每行一个字符串,分别表示先序和中序排列。【输出描述】 一个整数表示二叉树的深度。【输入样例1】ABDCEGFDBAEGCF【输出样例1】4【输入样例2】ABEFDCEBFADC【输出样例2】39。

2026-08-16 17:24:19 176

原创 C++二叉树(二)

二叉树的四种遍历方式:● 层序遍历(Level Order):从上到下,从左到右逐层访问● 先序遍历(Preorder):根->左子树->右子树● 中序遍历(Inorder):左子树->根->右子树● 后序遍历(Postorder):左子树->右子树->根由于不需要考虑每个结点的值,因此结构体只需要存储每个结点的左右孩子即可。int ls,rs;//ls:左子结点编号,rs:右子结点编号数组的大小为n+1(结点编号从1开始)

2026-08-16 17:22:26 301

原创 C++二叉树一(练习题)

【描述】给定一棵二叉树, 要求用层序遍历的方式求该二叉树的深度。二叉树深度的定义: 从根结点到最远叶结点依次经过的结点个数(含根、叶结点)。【输入描述】第一行是一个整数 n, 表示二叉树的结点个数。二叉树结点编号从 1到 n, 根结点为 1, n <= 10。接下来有 n 行, 依次对应二叉树的 n 个结点。每行有两个整数, 分别表示该结点的左儿子和右儿子的结点编号。如果第一个(第二个) 数为-1 则表示没有左(右) 儿子。【输出描述】输出一个整型数, 表示树的深度。【输入样例】3。

2026-08-15 15:27:18 224

原创 C++二叉树(一)

二叉树(Binary tree)是每个结点最多只有两个子结点的树结构。● 树中结点的度都不大于2● 两个子结点分别称为树的左子结点和右子结点● 两个子结点是有左右之分的例如,图的树就是一棵二叉树。2是1的左子结点,3是1的右子结点。2、3的左右子结点都是空。1、下图的树是二叉树吗?NO二叉树所有结点的度都不大于2。而本题结点3的度是3,所有这不是二叉树。2、下面两颗二叉树相同吗?不同二叉树的子结点是有左右之分的。子结点换位置后得到的是一棵新的二叉树。//结点的值。

2026-08-15 15:25:33 764

原创 C++认识数(练习题)

【题目描述】指定下图所示的树结构,圆圈内是树结点的值。请你编程保存这个树的信息,然后输出b、c、f、h结点的子结点(的值)。输出4行,每个结点的子结点占一行。有多个子结点从左到右排列,之间以空格隔开;没有子节点的输出“LEAF”。(要求用孩子兄弟表示法表示和保存树结构)【输入描述】无【输出描述】输出输出b、c、f、h结点的子结点(的值)。【输入样例】无【输出样例】de f ghLEAF10。

2026-08-14 16:11:14 174

原创 C++认识数

一棵树是由n(n≥0)个元素组成的有限集合。n=0,表示空树一棵树是由n(n≥0)个元素组成的有限集合。① 组成树的每个元素称为结点(node),或节点。② 连接两个结点的线段称为边。③任意一棵非空树中(n>0),有一个特定的结点,称为根结点或树根(root)。④根结点有且仅有一个。⑤除了根结点外,其他每个结点都只有一个前驱结点;而每个结点的后继结点数是不确定的。因此树结构是非线性结构。下图的树结构中,根结点是a。叶子结点的个数_5,它们是degij。结点f的兄弟结点是eg。

2026-08-14 16:09:10 379

原创 C++阶段练习四(练习题)

【描述】给定一个包含加减乘除法的算术表达式,请你编程计算表达式的值。【输入描述】一行,为需要你计算的表达式,表达式中包含数字、加法运算符“+”、减法运算符“-“、乘法运算符”“、除法运算符“/”,且没有括号,所有参与运算的数字均为0到2^31-1之间的整数。表达式中加法运算符和乘法运算符的总数≤100000。输入数据保证这一行只有0-9、+、-、、/这14种字符,除法只计算整除结果不保留小数。【输出描述】一个整数,表示这个表达式的值。注意:测试数据保证单次运算结果不超出-2。

2026-08-13 12:17:15 201

原创 C++阶段练习四

32//n的最大值+2---全局变量自动初始化为0int n;// 地图数组// 标记数组对于输入的nn的方阵,地图大小变成(n+2)(n+2)原地图保存在下标1~n第0行、第0列、第n+1行、第n+1列都是0。

2026-08-13 12:15:31 270

原创 C++阶段练习(三)--练习题

【描述】编程计算由数字1围成的下列图形的面积。面积计算方法是统计数字1所围成的闭合曲线中0的数目。注意:数据确保矩阵中数字1所围成的闭合曲线只有1个,且矩阵最外圈不为1。【输入描述】输入一个包含0和1数字的10*10矩阵。【输出描述】输出数字1围住的面积(格子之间只能上下左右四个方向相连)。【输入样例】【输出样例】1311。

2026-08-12 14:20:56 190

原创 C++阶段练习(三)

某位同学脑洞大开,想,如果马既能按“日”走,也能如象一样走“田”字,下棋会更有趣。在一个100×100的地图中,给定A、B两点的坐标,马可以从位置(1,1)到达A点,也可以到达B点。然后从0到N之间的所有正整数(包含0和N)中选择三个,组成一个三位数(0不能作为百位数),且这个三位数为奇数。6G技术目前处于研发阶段,目标是实现更高的传输速度、更低的延迟和更广泛的连接,预计将在未来几年内实现商用,为互联网的发展带来新的机遇。(2)当i == n+1,即n行皇后均摆放完成时,表示该方案可行,总方案数+1。

2026-08-12 14:18:38 347

原创 C++广度优先搜索(二)-练习题

【描述】少年李逍遥的婶婶病了,孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。现在要求你来帮助他实现这个目标。【输入格式】第1行输入两个非零整数 M 和 N ,两者均不大于20。M 表示迷阵行数, N 表示迷阵列数。

2026-08-11 19:53:42 215

原创 C++广度优先搜索(二)

1、用结构体表示一个迷宫节点//为节点保存层数信息int x;//行int y;//列int step;//step是层数,也是从出发点到(x,y)点的步数。2、定义一个存放迷宫节点的队列#include<queue> //STLB队列3、核心代码:修改4*4迷宫寻宝的代码。

2026-08-11 19:51:47 326

原创 C++广度优先搜索一(练习题)

#----–#-##【用例输出】2int n, m;// 网格的行数(n)和列数(m)// 存储网格数据的二维字符串数组(每行是一个字符串)i < n;++i) {// 初始化为全false(所有格子初始未被访问)bool// 统计连通区域的数量(最终输出结果)// 曼哈顿距离:|dx| + |dy| <= 2(例如:横向移动2格、纵向移动1格等情况)// 共12个方向,覆盖了曼哈顿距离为1和2的所有可能方向。

2026-08-08 12:31:55 199

原创 C++广度优先搜索(一)

1、用结构体node表示一个迷宫节点int x;//行int y;//列//出发点(1,1)2、定义一个存放node类型元素的队列#include<queue> //STL队列//队列的每个元素都是一个node队列的常用操作函数:q.push(x)----队尾插入元素q.pop()----队首删除元素q.front()----返回队首元素q.back()----返回队尾元素q.size()----返回元素个数q.empty()----队列是否为空。

2026-08-08 12:29:48 458

原创 C++深度优先搜索三(练习题)

【描述】n个数取出r个数组合降序(组合内降序,组合之间也降序),按升序输入n个不相同的数。现在从这n个数中挑出r个数进行组合(r<=n),请按字典序降序排序输出所有可能的组合结果。【输入描述】两个整数n和r(n和r都是3~10之间的整数)【输出描述】从n个数中取r个数的组合结果!结果按字典序降序排序。【输入样例】4 33 7 12 19【输出样例】19 12 719 12 319 7 312 7 3。

2026-08-07 17:15:20 206

原创 C++深度优先搜索(三)

● 从第1个盒子开始,依次为每个盒子选数,每个盒子的选数逻辑都是相同的。关键点:1.有序地选数(例如从小到大)2. 标记已使用的元素,避免重复选择。● 可以用深度优先搜索找到全部的全排列方案。应用深度优先搜索找到全部的全排列方案:3. 有序地选数4. 通过标记数组标记已使用的元素,避免重复选择。5. 回溯上一层之前要清空标记,以尝试其他分支。

2026-08-07 17:13:04 341

原创 C++深度搜索二(练习题)

有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?【输入描述】第一行为N,M(1≤N;M≤100)。后面为N行,每行M个字符,表示这行的土地状况。【输出描述】一行,共有的水洼数。【输入样例】10 12W…WW..WWW…WWW…WW…WW.…WW.…W……W…W….W.W…WW.W.W.W…W..W.W…W.…W…W.【输出样例】3。

2026-08-06 16:02:54 219

原创 C++深度优先搜索(二)

1.DFS 与迷宫问题(二)

2026-08-06 15:55:04 272

原创 C++深度优先搜索一(练习题)

【描述】已知山洞里面是由许多房间组成的迷宫,每个房间可以通往上下左右四个房间,迷宫大小是一个NN的正方形,其中有一些怪兽堵路。现在从起始(1,1)的位置进入洞穴寻找宝藏(已有一个宝箱),如果可以找到宝藏输出YES,否则输出NO。【输入格式】第一行是一个正整数N (2<N≤10),后面包含NN行,由0、1、2组成的矩阵,其中0表示可以走,1表示怪兽,2表示宝藏的位置。(注意:第一个房间没有怪兽)【输出格式】找到宝藏输出YES,否则输出NO。【输入样例】40 0 0 1。

2026-07-11 19:55:01 159

原创 C++深度优先搜索(DFS)的概念(一)

dfs(x,y):深度优先搜索(x,y)格子搜索当前格子的下右上左格子创建一个二维数组,false:未搜索,true:已搜索//全局变量,所有元素默认初始化为O(false)主程序:标记(1,2)格子dfs (1,2);//从(1,2)格子开始深度优先搜索return 0;迷宫格子的行列号从1开始,所以visited数组也从下标1开始用。0行0列不用。自定义dfs()函数,实现深度优先搜索。dfs(x,y):深度优先搜索(x,y)格子//搜索当前格子的下右上左格子。

2026-07-11 19:51:50 441

原创 C++STL栈和队列 (练习题)

【描述】有n个人排队,每个人有一个编号i (1≤i≤n),从左往右“1,2,1,2, … ”报数,报到1的人出列,数到2的人立即站到队伍的最右端。报数过程反复进行,直到n个人都出队为止。已知n个人原来的顺序,请写出他们的出列顺序。【输入描述】第一行为n(n≤100),第二行为n个编号i(1≤i≤100),且i不会重复。【输出描述】一行,为他们的出列编号。【输入样例】8【输出样例】100。

2026-07-10 10:11:42 221

原创 C++(STL栈和队列)

如果栈空:输出YES;· 如果非空:输出NO;比如((())这种情况。

2026-07-10 10:08:20 222

原创 C++STL向量(练习题)

【描述】请用向量vector实现栈结构,然后进行如下栈操作:输入5个整数,将这5个整数依次进行入栈,接下来做三次出栈操作,并按照出栈顺序输出出栈元素。以上操作完成后输出此时的栈顶元素。【输入格式】输入5个整数,用空格隔开。(1≤整数≤1000)【输出格式】输出2行,第1行输出出栈元素,按照出栈顺序输出,用空格隔开。第2行输出完成出栈操作后的栈顶元素。【输入样例】4 9 12 6 7【输出样例】7 6 129。

2026-07-08 11:43:35 176

原创 C++(STL向量)

给定一个整数x,每个人可以选择一个序列中的数与x进行接龙,要求接龙的数必须大于等于x。玩家的道具列表可以使用vector来存储,玩家获取新道具时可以使用push_back()添加,使用道具时可以使用erase()删除。//元素初始值列表----创建了一个长度为3的vector,元素为 {1,2,3}【注意】遍历去重后的vector不能用v.size(),只能用计算得到的cnt(去重后的元素个数),否则会输出重复的元素。输入N个无序的数,请将相同的数删成只剩下一个,并将删除后的数列从大到小排序后输出。

2026-07-08 11:41:10 448

原创 C++链表二(练习题)

【描述】创建 n 个节点的单向链表,按顺序存储 1~n。请用动态分配内存的方式创建节点。遍历输出每个节点的值。【输入格式】一个正整数n【输出格式】输出单向链表每个节点的值,数值之间用空格隔开。【输入样例】10【输出样例】1 2 3 4 5 6 7 8 9。

2026-06-26 11:45:19 244

原创 C++(链表二)

● 如果你的应用场景主要集中在单向顺序处理数据,且对内存占用敏感,单向链表是更好的选择。解析:在循环链表中,插入一个新节点时,只需要找到一个已知节点,然后在该节点后插。解析:和单向链表一样,在循环链表中,删除一个节点需要找到该节点的前驱节点,然。(其中,next为节点的直接后继,prev为节点的直接前驱)D。2、【真题】在一个双向链表中,p指向链表中的一个节点,s指向一待插入。2、在至少有2个节点的循环链表中,如果要删除一个节点,以下步骤正。在单向链表的每个节点添加一个指向前驱节点的指针,就得到双向链表。

2026-06-26 11:42:45 216

原创 C++链表一(练习题)

【描述】创建一个链表,按顺序存储字母A’~‘E’。从第一个结点依次输出链表中的数据。【输入描述】无【输出描述】按顺序存储字母A’~‘E’【样例输入】无【样例输出】ABCDE。

2026-06-25 09:37:37 213

原创 c++链表(一)

① 链表(Linked List)是一种线性数据结构,其中每个节点存储一个数据和一个指向下一个节点的指针。②链表的优点● 插入和删除操作无需移动其他元素,时间复杂度为O(1)。● 链表不需要预先分配固定大小的内存空间,链表的大小可以根据需要动态扩展或缩减。③ 链表的缺点● 访问任意节点需要从头节点开始遍历,时间复杂度为O(n)。● 链表节点除了包含值,还需额外保存一个指针。因此在相同数据量下,链表比数组占用更多的内存空间。int data;// 数据node *next;

2026-06-25 09:34:58 199

原创 C++队列(练习题)

【描述】密码由生日作为基数(8位数字),生成密码的规则如下:将第1个数字删除,第2个数字放到数字序列末端,再将第3个数字放到数字序列末端。重复执行第一步,直到所有数字删除完毕。删除的数字将会组成一串新的数字,这就是密码。【输入格式】一行,一组八位数字。【输出格式】一行,八位数字生成的密码。【输入样例】18781205【输出样例】180752819。

2026-06-24 15:38:46 166

原创 C++(队列)

队列不空时,返回队尾元素,即q[tail-1]。if(head!· 返回值类型要与队列元素类型一致7// 队头位置// 队尾+1的位置● 通过循环队列优化了空间利用率● 假设循环队列的数组长度为MAXN,最多能存储(MAXN-1)个元素。

2026-06-24 15:36:50 398

新媒体教程,微博运营相关基础了解

微博是一种基于网络的社交媒体平台,用户可以在上面发布和分享文字、图片、视频等内容,与其他用户进行互动。微博的基础功能包括: 1. 发布微博:用户可以通过文本、图片、视频等方式发布自己的内容,表达想法、分享生活等。 2. 关注用户:用户可以关注其他用户,即成为其粉丝,以便在自己的主页上查看他们的最新动态。 3. 点赞和评论:用户可以对自己感兴趣的微博进行点赞,表示赞同或喜欢。同时,用户还可以对微博进行评论,与其他用户进行互动。 4. 转发微博:用户可以将其他用户的微博分享到自己的主页上,让更多的人看到并进行讨论。 5. @提醒:用户可以通过@符号加上用户名,将自己的微博提醒给指定的用户,以便引起其注意或进行交流。 6. 私信:用户可以通过私信功能与其他用户进行一对一的私下聊天。 7. 广告推广:微博也提供广告推广的功能,用户可以通过投放广告来进行品牌推广或商品销售。 以上是微博的基础功能,用户可以根据自己的需求和兴趣,在微博上进行交流、获取信息、推广自己的个人品牌等。 里面有详细教程

2024-05-30

新媒体必备工具及需要掌握技术报告,开启了解之路

新媒体是指利用信息通信技术发展起来的一种媒体形式。它包括互联网、移动互联网、社交媒体、数字电视等,具有实时性、互动性和多媒体特点。新媒体的出现改变了人们获取和传播信息的方式,使得信息的传播更加快速、广泛和方便。新媒体在社会经济、政治、文化等领域都产生了重大影响,成为了社会发展的重要力量之一。 新媒体具有以下几个好处: 1.传播速度快:新媒体利用互联网传播信息,可以实现实时更新和即时传播,让信息传播的速度大大加快。 2.覆盖面广:新媒体通过互联网的全球性质,可以实现信息的全球传播,不受地域限制,覆盖面更广。 3.互动性强:新媒体提供了许多互动的方式,如留言、评论、分享等,用户可以积极参与其中,增加了用户与平台的互动性。 4.个性化定制:新媒体可以针对用户的喜好和需求进行个性化推送,为每个用户提供定制化的信息和服务,提升用户体验。 5.多媒体呈现:新媒体可以同时运用文字、图像、音频、视频等多种形式来呈现信息,丰富了信息传播的方式,提供了更多的选择。 6.低成本高效率:相比传统媒体,新媒体的制作、传播成本较低,且能够快速反馈效果,提高了传播效率。

2024-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除