网易首页 > 网易号 > 正文 申请入驻

采用chatGPT进行交互式学习的一次完美实践

0
分享至

最近女儿为了备考noip,需要学习与图有关的知识。从教材里学习了与图有关的理论知识(如无向图、有向图、图的邻接矩阵和邻接表存储、深度搜索、广度搜索以及拓扑排序和dijkstra算法等)后,为了检验一下知识掌握情况,做到知行合一,接下来就是要进行编程实践练习了。

考虑到chatGPT当下如火如荼,本次实践操作学习从原来的OJ系统转战到了chatGPT。经过初步的使用,小孩产生了浓厚的兴趣,发现了很多意想不到的收获。

1、将传统的被动刷题变成了主动提问,大大提升了学习积极性。

传统的OJ系统都是系统出题,学生作答,这种方式虽然对检验学生的能力有一定帮助,但是属于被动式学习,也就是我们常说的应试教育。在chatGPT里,学生可以根据自己对知识的掌握程度,主动向chatGPT提问或者出题给chatGPT作答,学生从chatGPT的回答中获取和巩固知识,这种方式的转变可以启发学生进行主动思考,积极参与到学习过程中来。以下是女儿在巩固图的邻接表时与chatGPT的交互过程。

1、问:如何采用邻接表来表示一张有向图?采用C++语言来编程实现?

2、答:邻接表是一种常见的表示有向图的数据结构,可以用来存储图中的节点以及它们之间的关系。在邻接表中,每个节点都有一个与之关联的链表,该链表包含所有该节点的出边所指向的节点。

以下是使用C++语言实现邻接表表示有向图的代码示例:

#include #include using namespace std;// 邻接表的节点结构体struct AdjListNode {int dest;// 目标节点struct AdjListNode* next; // 指向下一个节点的指针};int main() {int V = 5;// 图中节点的数量vector adj(V, nullptr); // 存储邻接表的向量// 添加边到邻接表int src, dest;while (cin >> src >> dest) {// 创建新节点AdjListNode* newNode = new AdjListNode;newNode->dest = dest;newNode->next = nullptr;// 将新节点添加到源节点的链表中if (adj[src] == nullptr) {adj[src] = newNode;} else {AdjListNode* current = adj[src];while (current->next != nullptr) {current = current->next;}current->next = newNode;}}// 打印邻接表for (int i = 0; i < V; ++i) {cout << i << ": ";AdjListNode* current = adj[i];while (current != nullptr) {cout << current->dest << " ";current = current->next;}cout << endl;}// 释放内存for (int i = 0; i < V; ++i) {AdjListNode* current = adj[i];while (current != nullptr) {AdjListNode* next = current->next;delete current;current = next;}}return 0;}

这个程序实现了一个简单的有向图,其中包含5个节点和若干条边。使用邻接表的数据结构将节点和边存储在内存中,并且可以打印出该图的邻接表。在这个程序中,每个节点用一个指针指向其邻接表的头结点,头结点是一个指针,指向该节点的第一个邻接节点。如果该节点没有邻接节点,则它的头结点指向空指针。在程序中,使用 vector 容器存储邻接表的向量,每个元素是一个指向头结点的指针。

2、问:不要使用复杂的数据结构

2、答:好的,以下是一个更为简单的 C++ 代码示例,实现邻接表来表示有向图:

#include #include using namespace std;const int MAX_V = 100;// 最大节点数量vector adj[MAX_V];// 存储邻接表int main() {int V = 5;// 图中节点的数量// 添加边到邻接表adj[0].push_back(1);adj[0].push_back(4);adj[1].push_back(3);adj[1].push_back(4);adj[2].push_back(0);adj[3].push_back(2);adj[3].push_back(4);// 打印邻接表for (int i = 0; i < V; ++i) {cout << i << ": ";for (int j = 0; j < adj[i].size(); ++j) {cout << adj[i][j] << " ";}cout << endl;}return 0;}

在这个程序中,我们使用一个二维 vector 来表示邻接表。每个节点 i 对应的向量 adj[i] 存储它所连接的节点的编号。在添加边时,我们只需要将目标节点的编号添加到源节点的向量中即可。在打印邻接表时,我们遍历每个节点的向量,输出它所连接的所有节点的编号。这个实现方式更为简单,适合初学者理解。

2、可以帮助学生从多个侧面进行学习,增强知识的融会贯通。

举例来说,为了加深对图的遍历的学习,有多种方法。比如有深度搜素和广度搜索,其中深度搜索又有递归的模式和栈的方式,广度搜索又有队列的模式,在具体实现的时候,又有C与C++之分。如果用思维导图表示如下:

在传统的学习过程中,老师很少有时间和精力这样讲解,互联网上的学习资料虽然很多,但是要找到适合自己学龄特点而且有比较全面的材料是要花费非常多的时间的。有了chatGPT,这种多维度对比学习一下子变得近在咫尺了。

以下是女儿在学习图的搜索过程中与chatGPT的对话内容:

1、问:给定有n个节点,m条边的有向图,对每个节点v都求A(v),表示从节点v出发,能达到的编号最大的节点。用c++来编程实现。

1、答:这个问题可以用深度优先搜索(DFS)来解决。我们可以从每个节点开始进行DFS,记录下当前已经访问到的编号最大的节点,然后把这个信息返回给调用它的节点,最终得到每个节点的A(v)。

下面是一个用C++实现的示例代码:

#include #include using namespace std;const int MAX_V = 100;// 最大节点数量vector adj[MAX_V];// 存储邻接表bool visited[MAX_V]; // 记录节点是否已经被访问int A[MAX_V];// 存储每个节点的A(v)void dfs(int v, int& max_node) {visited[v] = true;for (int i = 0; i < adj[v].size(); ++i) {int next = adj[v][i];if (!visited[next]) {dfs(next, max_node);}}if (v > max_node) {max_node = v;}A[v] = max_node;}int main() {int n = 5, m = 7;// 节点数和边数// 添加边到邻接表adj[0].push_back(1);adj[1].push_back(2);adj[1].push_back(3);adj[2].push_back(3);adj[2].push_back(4);adj[3].push_back(0);adj[3].push_back(4);// 对每个节点进行DFS,计算A(v)for (int i = 0; i < n; ++i) {int max_node = -1;memset(visited, false, sizeof(visited));dfs(i, max_node);}// 打印每个节点的A(v)for (int i = 0; i < n; ++i) {cout << "A(" << i << ") = " << A[i] << endl;}return 0;}在这个程序中,我们首先手动添加了边到邻接表中,用于演示计算A(v)的功能。在实际应用中,我们需要根据具体的需求动态地添加边到邻接表中。接下来,我们对每个节点进行DFS,并记录下当前已经访问到的编号最大的节点,最终得到每个节点的A(v)。最后,我们打印出每个节点的A(v)。注意,在每次DFS之前,我们需要把visited数组重新初始化为false,以便正确地记录节点是否已经被访问。

在这个程序中,我们首先手动添加了边到邻接表中,用于演示计算A(v)的功能。在实际应用中,我们需要根据具体的需求动态地添加边到邻接表中。接下来,我们对每个节点进行DFS,并记录下当前已经访问到的编号最大的节点,最终得到每个节点的A(v)。最后,我们打印出每个节点的A(v)。注意,在每次DFS之前,我们需要把visited数组重新初始化为false,以便正确地记录节点是否已经被访问。

2、问:采用连接矩阵法来存储图

2、答:邻接矩阵是一种常用的图表示方法,可以用二维数组来表示。对于一个有向图,邻接矩阵中的第i行第j列的元素为1表示存在一条从节点i到节点j的有向边,为0则表示没有。

下面是一个用C++实现的示例代码,用邻接矩阵来计算每个节点的A(v):

#include #include using namespace std;const int MAX_V = 100;// 最大节点数量int adj[MAX_V][MAX_V];// 邻接矩阵bool visited[MAX_V];// 记录节点是否已经被访问int A[MAX_V]; // 存储每个节点的A(v)void dfs(int v, int& max_node, int n) {visited[v] = true;for (int i = 0; i < n; ++i) {if (adj[v][i] && !visited[i]) {dfs(i, max_node, n);}}if (v > max_node) {max_node = v;}A[v] = max_node;}int main() {int n = 5, m = 7;// 节点数和边数// 初始化邻接矩阵memset(adj, 0, sizeof(adj));adj[0][1] = 1;adj[1][2] = 1;adj[1][3] = 1;adj[2][3] = 1;adj[2][4] = 1;adj[3][0] = 1;adj[3][4] = 1;// 对每个节点进行DFS,计算A(v)for (int i = 0; i < n; ++i) {int max_node = -1;memset(visited, false, sizeof(visited));dfs(i, max_node, n);}// 打印每个节点的A(v)for (int i = 0; i < n; ++i) {cout << "A(" << i << ") = " << A[i] << endl;}return 0;}

在这个程序中,我们首先手动初始化了邻接矩阵,用于演示计算A(v)的功能。在实际应用中,我们需要根据具体的需求动态地修改邻接矩阵中的元素。接下来,我们对每个节点进行DFS,并记录下当前已经访问到的编号最大的节点,最终得到每个节点的A(v)。最后,我们打印出每个节点的A(v)。

同样需要注意,在每次DFS之前,我们需要把visited数组重新初始化为false,以便正确地记录节点是否已经被访问。

3、问:用栈来实现

3、答:要用栈实现该问题,我们可以采用深度优先遍历的方法,具体步骤如下:

(1)创建一个栈S,将起始节点v压入栈中,并标记v为已访问;

(2)当栈不为空时,弹出栈顶元素v,并将v的所有未访问的邻居节点压入栈中;

(3)对于每个压入栈中的节点u,标记其为已访问,同时记录当前已经访问到的编号最大的节点;

(4)重复步骤2和3,直到栈为空;

(5)记录当前节点v的A(v)为已访问的最大节点编号。

下面是一个用C++实现的示例代码,使用栈来计算每个节点的A(v):

#include #include #include using namespace std;const int MAX_V = 100;// 最大节点数量int adj[MAX_V][MAX_V];// 邻接矩阵bool visited[MAX_V];// 记录节点是否已经被访问int A[MAX_V]; // 存储每个节点的A(v)void dfs(int v, int n) {stack S;S.push(v);visited[v] = true;while (!S.empty()) {int u = S.top();S.pop();int max_node = -1;for (int i = 0; i < n; ++i) {if (adj[u][i] && !visited[i]) {S.push(i);visited[i] = true;if (i > max_node) {max_node = i;}}}if (u > max_node) {max_node = u;}A[u] = max_node;}}int main() {int n = 5, m = 7;// 节点数和边数// 初始化邻接矩阵memset(adj, 0, sizeof(adj));adj[0][1] = 1;adj[1][2] = 1;adj[1][3] = 1;adj[2][3] = 1;adj[2][4] = 1;adj[3][0] = 1;adj[3][4] = 1;// 对每个节点进行DFS,计算A(v)for (int i = 0; i < n; ++i) {memset(visited, false, sizeof(visited));dfs(i, n);}// 打印每个节点的A(v)for (int i = 0; i < n; ++i) {cout << "A(" << i << ") = " << A[i] << endl;}return 0;}

在这个程序中,我们首先手动初始化了邻接矩阵,用于演示计算A(v)的功能。在实际应用中,我们需要根据具体的需求动态地修改邻接矩阵中的元素。接下来,我们对每个节点进行DFS,并计算出其对应的A(v)。对于每次遍历,我们都会先将起始节点压入栈中,并标记其为已访问。之后,每次从栈中弹出一个节点u,并将其未访问的邻居节点压入栈中。同时,我们记录当前已经访问到的编号最大的节点,并在遍历结束后,将当前节点的A(v)设置为已访问的最大节点编号。最终,我们打印出每个节点的A(v)。

该程序使用栈实现深度优先遍历,并记录每个节点的A(v)。由于邻接矩阵的访问是O(1)的,因此该程序的时间复杂度为O(n^2),其中n为节点数。

4、问:用递归和栈,哪个效率更高?

4、答:在处理大规模数据时,使用栈实现的DFS通常比递归实现的DFS效率更高,因为递归调用需要消耗额外的栈空间,而在栈实现的DFS中,我们可以手动控制栈的大小,避免栈溢出问题。此外,递归实现的DFS可能会造成函数调用的开销,而栈实现的DFS则没有这个问题。

然而,在小规模数据的情况下,使用递归实现的DFS可能比栈实现的DFS更简洁易懂,并且代码更加简洁。因此,在实际应用中,我们需要根据具体情况选择不同的实现方式。

5、问:用C++的广度搜索来解决上述问题。

5、答:以下是使用C++的广度搜索法来解决给定有向图的问题:

#include using namespace std;const int MAXN = 100005;vector g[MAXN];int n, m;int ans[MAXN];void bfs(int start) {queue q;vector vis(n + 1, false);q.push(start);vis[start] = true;while (!q.empty()) {int u = q.front();q.pop();for (int i = 0; i < g[u].size(); i++) {int v = g[u][i];if (!vis[v]) {vis[v] = true;q.push(v);ans[start] = max(ans[start], v); // 更新答案}}}}int main() {cin >> n >> m;for (int i = 1; i <= m; i++) {int u, v;cin >> u >> v;g[u].push_back(v);}for (int i = 1; i <= n; i++) {bfs(i);}for (int i = 1; i <= n; i++) {cout << ans[i] << " ";}cout << endl;return 0;}

上面的程序中,我们使用了一个 ans 数组来记录从每个节点出发,能到达的编号最大的节点。对于每个节点 i,我们调用 bfs(i) 进行广度搜索,搜索到的每个新节点都会更新 ans[i]。最后,我们输出ans 数组即可。

3、联系生活实际,通过练习强化对知识的理解

1、问:什么事图的拓扑排序?举一些生活中的例子

1、答:拓扑排序是一种用于有向无环图(DAG)的排序算法,它将图中的节点按照依赖关系进行排序,使得在排序结果中,每个节点都排在它的依赖节点之后。

在生活中,拓扑排序可以用于许多问题,例如:

(1)课程安排:在学校或大学,每门课程可能都有先修课程或必修课程,这些课程之间形成了一个有向无环图。拓扑排序可以用于确定一个合理的课程安排,确保学生按照正确的顺序学习每门课程。

(2)工程项目:在工程项目中,有许多任务需要按照顺序完成,某些任务可能必须在其他任务完成后才能开始。拓扑排序可以用于确定工程项目中任务的顺序,确保任务在正确的顺序中完成。

(3)编译器:编译器可以将源代码转换为可执行文件,但是源代码之间可能存在依赖关系,例如,一个文件可能引用了另一个文件中的函数。拓扑排序可以用于确定编译器处理源代码的顺序,确保每个文件都在其依赖文件之后处理。

2、问:拓扑排序的思想是什么?怎样判断是否有环路?

2、答:拓扑排序是一种对有向无环图(DAG)进行排序的算法。它的基本思想是通过不断删除图中入度为0的顶点来得到一个有序的顶点序列。这个序列即为一种拓扑排序。

具体来说,拓扑排序的过程是这样的:

(1)统计每个节点的入度。对于有向图中的每个节点,统计有多少个节点指向它,这个数量就是这个节点的入度。

(2)找到入度为0的节点。遍历所有的节点,找到入度为0的节点,将它们加入到一个队列中。

(3)删除入度为0的节点。从队列中取出一个入度为0的节点,删除这个节点,同时删除以它为起点的所有有向边。

(4)更新入度。对于所有以被删除节点为起点的边,将指向的节点的入度减1。

(5)重复上述步骤。重复步骤2到步骤4,直到队列为空。

如果在拓扑排序的过程中,所有的节点都被删除了,那么说明这个有向图是一个DAG。否则,如果还有节点没有被删除,就说明这个图存在环路。

判断有向图中是否存在环路,可以使用拓扑排序的过程来判断。如果在拓扑排序的过程中,所有的节点都被删除了,那么说明这个有向图是一个DAG,不存在环路。否则,如果在执行拓扑排序的过程中,队列中始终没有入度为0的节点,就说明图中存在环路。

3、问:用C++写一个课程安排的拓扑排序的程序

3、答:下面是用C++实现的一个简单的课程安排的拓扑排序程序:

#include // 引入输入输出流库#include // 引入向量库#include // 引入队列库using namespace std;const int MAXN = 100;// 最大节点数,可以根据实际情况进行调整vector G[MAXN];// 有向图邻接表,使用向量存储int inDegree[MAXN]; // 记录每个点的入度int n, m; // n为节点数,m为边数void topologicalSort() {queue q; // 用于存放入度为0的节点for (int i = 1; i <= n; ++i) {if (inDegree[i] == 0) {// 如果节点i的入度为0,将其加入队列中q.push(i);}}while (!q.empty()) { // 当队列不为空时,循环执行以下操作int u = q.front();// 取出队首节点uq.pop();// 将队首节点弹出队列cout << u << " "; // 输出节点ufor (int i = 0; i < G[u].size(); ++i) {// 遍历节点u的邻接节点vint v = G[u][i];--inDegree[v]; // 将节点v的入度减1if (inDegree[v] == 0) {// 如果节点v的入度为0,将其加入队列中q.push(v);}}}}int main() {cin >> n >> m;// 输入节点数和边数for (int i = 0; i < m; ++i) { // 输入边,构建有向图int u, v;cin >> u >> v;G[u].push_back(v);++inDegree[v]; // 计算每个节点的入度}topologicalSort(); // 进行拓扑排序return 0;}

这个程序使用了一个邻接表来表示有向图,inDegree数组用于记录每个节点的入度。在拓扑排序过程中,将入度为0的节点加入到队列中,依次取出队首节点,将其邻接节点的入度减1,若减1后入度为0,则加入队列中。最终输出拓扑排序的结果。

这里再举一个Dijkstra算法的例子。

1、问:什么是Dijstra算法?举例子说明

2、答:Dijkstra算法是一种经典的最短路径算法,用于解决带有非负权重的加权有向图或无向图中的单源最短路径问题。该算法的基本思路是,从起点出发依次扩展到距离起点更近的节点,并且记录当前已经求出的节点到起点的最短路径。

下面是Dijkstra算法的具体步骤:

(1)初始化。将起点的距离设置为0,其余节点的距离设置为正无穷,将所有节点标记为未处理。

(2)选择当前距离起点最短的未处理节点u。第一次执行时,起点就是最短距离的节点。

(3)遍历节点u的所有邻接节点v。如果从起点到v的路径比当前已知的路径更短,更新v的距离,并将其父节点设置为u。

(4)标记节点u为已处理。

(5)重复步骤2到步骤4,直到所有的节点都被标记为已处理或者没有可到达的未处理节点。

最后,可以通过遍历每个节点的父节点来得到从起点到该节点的最短路径。

3、问:用C++写一个Dijkstra算法的程序

3、答:我们可以编写一个使用Dijkstra算法来解决这个问题的C++程序。以下是一个简单的实现:

#include #include using namespace std;// 定义图的大小#define V 5// 找到未处理节点中距离起点最近的节点int minDistance(int dist[], bool processed[]){int minDist = INT_MAX, minIndex = -1;for (int i = 0; i < V; i++)if (!processed[i] && dist[i] <= minDist)minDist = dist[i], minIndex = i;return minIndex;}// 打印从起点到每个节点的最短路径void printSolution(int dist[]){cout << "Vertex \t Distance from Source" << endl;for (int i = 0; i < V; i++)cout << i << "\t\t" << dist[i] << endl;}// 执行Dijkstra算法找到从起点到所有节点的最短路径void dijkstra(int graph[V][V], int start){int dist[V]; // 存储从起点到每个节点的距离bool processed[V]; // 存储每个节点是否已经被处理// 初始化for (int i = 0; i < V; i++)dist[i] = INT_MAX, processed[i] = false;dist[start] =// 找到从起点到所有节点的最短路径for (int count = 0; count < V - 1; count++){// 找到未处理节点中距离起点最近的节点int u = minDistance(dist, processed);processed[u] = true;// 更新未处理节点到起点的距离for (int v = 0; v < V; v++)if (!processed[v] && graph[u][v] && dist[u] != INT_MAX && dist[u] + graph[u][v] < dist[v])dist[v] = dist[u] + graph[u][v];}// 打印结果printSolution(dist);}// 主函数int main(){int graph[V][V] = {{0, 2, 4, 0, 0},{0, 0, 1, 5, 0},{0, 0, 0, 1, 3},{0, 0, 0, 0, 2},{0, 0, 0, 0, 0}};dijkstra(graph, 0);return 0;}

在上述程序中,minDistance()函数用于找到未处理节点中距离起点最近的节点;printSolution()函数用于打印从起点到每个节点的最短路径;dijkstra()函数是主要的Dijkstra算法实现。在dijkstra()函数中,我们首先初始化dist[]数组和processed[]数组,然后在一个循环中找到从起点到所有节点的最短路径。在每一次循环中,我们找到未处理节点中距离起点最近的节点,并将其标记为已处理。然后,我们更新未处理节点到起点的距离,并重复执行该过程,直到找到从起点到所有节点的最短路径。最后,我们调用printSolution()函数打印结果。

当我们运行上述程序时,将得到以下输出:

Vertex Distance from Source 0 0 1 2 2 3 3 4 4 5

4、针对阅读类题目,如果看不懂,可以直接将程序输入chatGPT 请求帮忙

问:下面这段代码是什么意思?想解决什么问题?

#include #include using namespace std;struct Person{int num;int next;};Person p[100];int main(){int m,n,count=0;cin>>m>>n;for(int i=1;i

答:这段代码是一个约瑟夫环(Josephus problem)的解决方案,它用来解决下列问题:

有m个人围成一圈,从第一个人开始报数,数到n的人出圈,接着从出圈的人的下一个人开始重新报数,直到最后只剩下一个人为止。求最后剩下的人的编号。

这个问题可以使用循环链表或者数组来解决。这段代码使用了数组来解决该问题,其中结构体Person代表一个人,num表示这个人的编号,next表示这个人的下一个人的编号。在程序开始时,它首先初始化一个包含m个人的环形链表,从1到m编号。然后,它遍历链表,每数到第n个人就将该人从链表中删除。最后,只剩下一个人时,就是最后剩下的人,程序输出该人的编号。

代码中的变量cur表示当前数到的人的编号,pre表示cur的前一个人的编号。count表示当前已经报数的人数,当count等于n时,就删除cur表示的这个人,将pre的下一个人指向cur的下一个人。如果count不等于n,就将pre设置为cur。当链表中只剩下一个人时,程序输出该人的编号,然后结束。

需要注意的是,这段代码使用了C++的输入输出库iostream,如果编译器不支持C++,就需要将代码中的cin和cout改为scanf和printf。

5、总结

读尽可能多的书,看尽可能多的资料,总结模式和规则,通过他人提示来学习和推理,通过他人的反馈来修正自己的知识和推理,这是人类要向机器学习让自己更智能的技巧。

所谓的题海战术可能不能让人变得更聪明,与其去搞题海战术,不如多看书,多看题,然后少量练习获取反馈,这样的学习方法可能更高效。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马斯克500亿美元天价薪酬获股东批准 史上最强打工人?

马斯克500亿美元天价薪酬获股东批准 史上最强打工人?

手机中国
2024-06-13 12:02:08
中国迈出收回藏南第一步?一旦回归,上百万移民该如何处理?

中国迈出收回藏南第一步?一旦回归,上百万移民该如何处理?

猫咪纪实说
2024-06-13 12:49:00
王思聪黄一鸣牵手照曝光,黄一鸣挺着大孕肚,挑选母婴用品!

王思聪黄一鸣牵手照曝光,黄一鸣挺着大孕肚,挑选母婴用品!

古希腊掌管月桂的神
2024-06-13 11:13:29
北方旱情持续,水利部针对河南等8省启动干旱Ⅳ级响应

北方旱情持续,水利部针对河南等8省启动干旱Ⅳ级响应

澎湃新闻
2024-06-12 20:06:28
男子未戴头盔被交警喷辣椒水后续:辅警已被停职,是男子挑衅在先

男子未戴头盔被交警喷辣椒水后续:辅警已被停职,是男子挑衅在先

飘飘视角
2024-06-13 18:12:48
谷俊山得知被查,叫嚣:“我后面有人”!谁知两人的回复让他心惊

谷俊山得知被查,叫嚣:“我后面有人”!谁知两人的回复让他心惊

史小纪
2024-06-13 11:13:32
长得小是种什么样的体验?网友:老婆就是这样没的!

长得小是种什么样的体验?网友:老婆就是这样没的!

户外阿崭
2024-05-01 11:43:03
李讷与父亲母亲弟弟合影

李讷与父亲母亲弟弟合影

华人星光
2024-06-13 14:13:09
杨紫、罗云熙二搭古装,祝绪丹、洪尧惊喜加盟,《嫤语书年》启动

杨紫、罗云熙二搭古装,祝绪丹、洪尧惊喜加盟,《嫤语书年》启动

娱乐倾城巷
2024-06-12 09:26:08
A股:历史已经在重演,做好准备吧,明天周五会迎来更大级别反攻

A股:历史已经在重演,做好准备吧,明天周五会迎来更大级别反攻

静守时光落日
2024-06-13 16:30:56
日本若断供中国光刻胶,麒麟9000s芯片将无法造,华为该如何应对

日本若断供中国光刻胶,麒麟9000s芯片将无法造,华为该如何应对

嘿哥哥科技
2024-06-13 01:47:21
新加坡门将拯救国足后,一夜收了近百万元打赏,名记:简直疯了!

新加坡门将拯救国足后,一夜收了近百万元打赏,名记:简直疯了!

十点街球体育
2024-06-12 18:12:57
日本最强顶级预言家,2024最新预言公开!这天台湾将发生翻天巨变

日本最强顶级预言家,2024最新预言公开!这天台湾将发生翻天巨变

小哥很OK
2024-06-12 11:37:53
头部主播卖不动货,抖音急了

头部主播卖不动货,抖音急了

市界
2024-06-13 14:12:26
大s喊话汪小菲:再婚也要给赡养费,汪小菲一句话让她哑口无言

大s喊话汪小菲:再婚也要给赡养费,汪小菲一句话让她哑口无言

娱记掌门
2024-06-13 17:25:30
最惨状元何川洋,高考659分被北大拒绝,北大:坚决不要这样的人

最惨状元何川洋,高考659分被北大拒绝,北大:坚决不要这样的人

吃鱼思故渊
2024-06-12 22:06:03
预警升级!福建一市景区关闭,公交停运!未来几天……

预警升级!福建一市景区关闭,公交停运!未来几天……

鲁中晨报
2024-06-13 14:31:14
泽连斯基德国议会演讲:与俄妥协已过去,普京失败符合所有人利益

泽连斯基德国议会演讲:与俄妥协已过去,普京失败符合所有人利益

探索星空
2024-06-12 16:13:49
“伏天热不热,就看五月初八”,今日五月初八,今年三伏很热吗?

“伏天热不热,就看五月初八”,今日五月初八,今年三伏很热吗?

乡村大营
2024-06-13 08:40:48
东契奇6犯赛后炮轰裁判:他们需做得更好 嘴硬强调系列赛未结束

东契奇6犯赛后炮轰裁判:他们需做得更好 嘴硬强调系列赛未结束

醉卧浮生
2024-06-13 11:41:23
2024-06-13 18:44:49
蜂巢的电影
蜂巢的电影
每天推荐,好看电影
1291文章数 1930关注度
往期回顾 全部

科技要闻

小红书员工仅1/5工龄满2年 32岁就不让进了

头条要闻

上海的哥撞保时捷后称心脏不舒服去医院 警方发现蹊跷

头条要闻

上海的哥撞保时捷后称心脏不舒服去医院 警方发现蹊跷

体育要闻

杰里·韦斯特:为什么他是LOGO?

娱乐要闻

森林北报案,称和汪峰的感情遭受压力

财经要闻

私募大佬孙强:中国为什么缺少耐心资本

汽车要闻

升级8155芯片 新款卡罗拉锐放售12.98-18.48万

态度原创

本地
亲子
时尚
数码
公开课

本地新闻

粽情一夏|海河龙舟赛,竟然成了外国人的大party!

亲子要闻

孩子吃饭时习惯性叫人盛饭 父母配合一招滑稽教育

美妆胶卷 | 不断变化的大自然之爱的“无常之美”~

数码要闻

AMD:锐龙 9000 台式机处理器将拥有更优秀的“有效频率”表现

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版