package com.wsq.leetcode;
/**
* 787. K 站中转内最便宜的航班
* @author wsq
* @date 2020/10/21
有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。
现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。
示例 1:
输入:
n = 3, edges = [[0,1,100],[1,2,100],[0,2,500]]
src = 0, dst = 2, k = 1
输出: 200
链接:https://leetcode-cn.com/problems/cheapest-flights-within-k-stops
*/
import java.util.Arrays;
public class FindCheapestPrice {
/**
* 动态规划,虽然知道了动态规划解题的基本思想,但是在处理复杂问题是,还是有点无知所措
* 1.确定状态
* 最后一步:经过k-1个中转战达到 站点i-1,然后经过一步达到站点i
* 子问题:计算经过k-1个中转到达i-1站点所需的最小的代价
* 2.定义转移方程
* f[i][k] = min(f[i][k], f[i][k-1] + w)
* 3.初始化条件以及边界情况
* 计算src直达的状态
* 4.计算顺序
* @param n
* @param flights
* @param src
* @param dst
* @param K
* @return
*/
public int findCheapestPrice(int n, int[][] flights, int src, int dst, int K) {
// 转移方程表示,经过多少中转最小代价到达目标
int[][] f = new int[n][K + 1];
for(int i = 0; i < n; i++){
Arrays.fill(f[i], Integer.MAX_VALUE);
}
// 由src直达的目的地
for(int[] flight: flights){
if(flight[0] == src){
f[flight[1]][0] = flight[2];
}
}
// 设置出发地和目的地相同的状态,由于测试用例中存在环路,需要将src与dst相同的状态置成0
for(int i = 0; i <= K; i++){
f[src][i] = 0;
}
for(int i = 1; i <= K; i++){
for(int[] flight: flights){
if(f[flight[0]][i-1] != Integer.MAX_VALUE){
f[flight[1]][i] = Math.min(f[flight[1]][i], f[flight[0]][i-1] + flight[2]);
}
}
}
return f[dst][K] == Integer.MAX_VALUE ? -1 : f[dst][K];
}
}
相关推荐
787. K 站中转内最便宜的航班(加权有向图的最短路径)
题目: 思路: 加权图的最短路径 1. 首先将航线转化为字典形式存储。(当前城市–下一城市–费用) 2. 建一个双向队列,元素为元组形式。(当前城市,src到当前城市的费用,中转次数) 3. 记录src到目的地dst的最小费用cheapest=1e6。(先设置为一个很大的数,这样在最后若cheapest=1e6,则说明没有从src到dst的路径,此时,返回-1) 4. 然后处理队列: 4...
K 站中转内最便宜的航班--动态规划
思路:我们可以先从第一站开始找,比如在0–>1–>3|0–>2–>3中,我把第一站定义为0–>1|0–>2。先找第一个也就是在k=1时 也就是0–>1|0–>2时,它们各自的价格。然后开始找k-n(0<n<k)个站的价格、一直找到第k个站的价格。 比如k=2,就要找1–>3|2–>3,这个时候因为有前面0–>1|0–>2的基础,我们可以合起来就有0–>1–>3|0–>2–>3的价格 了,这个时候我..
【C++DFS】787. K 站中转内最便宜的航班|1786
有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 pricei 抵达 toi。 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。 如果不存在这样的路线,则输出 -1。
LeetCode787K站中转内最便宜的航班(动态规划)
题目链接:leetcode787 思路:首先这题可以bfs做,因为第一个约束是K中转站内,即搜K+1层然后松弛dist数组,当终点的dist没有被松弛过说明不通。根据这个思路可以设计一个二维状态dp[i][j]dp[i][j]dp[i][j]表示到达j点最多经过i个中转站的最少费用,于是状态转移方程可以推导为: dp[i][to]=min(dp[i][to], dp[i-1][from]+w[...
Adobe软件非正版弹窗终极解决方案:PS/Ai/PR/AE禁用提示一键清除指南
本文提供了Adobe软件非正版弹窗的终极解决方案,包括PS、Ai、PR、AE等软件的禁用提示一键清除指南。通过专业清理工具和手动修改系统文件的方法,帮助用户彻底解决Adobe弹窗问题,提升使用体验。适用于Windows和Mac系统用户,操作简单高效。
宇树机器狗go2—slam建图(1)点云格式
上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道。宇树机器狗go2仿真会作为一个长期项目来进行不定期更新,仿真不只限于在gazebo上实现,后面还会在isaac sim等仿真平台上教大家如何搭建,其目的还是帮助各位都能以较低的成本加入到宇树机器狗go2的学习中。
Leetcode 787. K 站中转内最便宜的航班(DAY 51) ---- 动态规划学习期(未完全AC K站不会解)
原题题目 代码实现(首刷未解出来 ????) int findCheapestPrice(int n, int** flights, int flightsSize, int* flightsColSize, int src, int dst, int K){ int dp[101][101],i,j,k,m; int paths[101][101]; memset(paths,0,sizeof(paths)); memset(dp,0,sizeof(dp));
新手避坑指南:在MacBook上为PyTorch正确配置MPS环境,跑通第一个YOLOv8训练
本文详细指导新手如何在MacBook上为PyTorch正确配置MPS环境,并成功运行YOLOv8训练。从环境准备、PyTorch安装到YOLOv8配置和性能调优,提供全面的避坑指南和实用技巧,帮助开发者充分利用Mac的GPU加速能力。
【动态规划】leetcode-787. K 站中转内最便宜的航班
题目: 有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。 思路: 动态规划: 解答: class Solution: def findCheapestPrice(self, n: int, flights: List[List[int]], src: int, dst: int, K
告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化
本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。
C# chart以鼠标所在位置为中心进行缩放
以前都用labview做一些软件,但给出去总是会遇到版本,安装包过大等一些问题,于是想自学C#,记录一下使用过程中遇到的一些问题和解决措施,便于日后回顾。 在这个项目中需要绘制折线图,由于数据比较大,需要对图表进行缩放操作,以鼠标为中心对图表进行缩放,在网上查找了一些资料没找到我想要的,于是自己想了一个解决方案,可以基本实现,但略显繁琐,由于刚开始学习C#,对一些操作不太了解,若以后遇...
动态规划——787. K 站中转内最便宜的航班
文章目录题目描述解答(动态规划)另解(归纳法)总结 题目描述 难度easy 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。 解答(动态规划) class
蓝牙配对鉴权过程深度剖析:Just Works/Numeric Comparison/Passkey Entry/OOB 协议流程
当你新买的智能手表与手机配对时,是否遇到过这样的情况:有时只需在手机上点击 "确认" 即可完成配对,有时却需要在手表上输入手机显示的 6 位数字,而连接车载蓝牙时可能又需要输入固定密码?这些差异背后,是蓝牙配对鉴权机制在默默工作。蓝牙配对鉴权是设备间建立安全连接的核心环节,直接关系到数据传输的保密性和设备身份的真实性。
0图论/动态规划中等 LeetCode787. K 站中转内最便宜的航班
图论
YOLOv13改进:卷积魔改 | 动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点
如何跟YOLOv13结合:替代YOLOv13的DS-C3K2
【vsomeip3 教程】SOME/IP中间件去抖策略全解析
本文探讨了在SOME/IP中间件中实现Debounce(去抖动)机制的必要性和实现原理。文章首先分析了中间件层进行Debounce的四大动机:多订阅者共享收益、语义显式化、协议噪声屏蔽和入口处背压控制。接着详细阐述了Debounce的底层原理,包括变化检测机制(ignore和mask的应用)、时间门控策略(interval的两种时间基准)以及超时补发机制,并通过表格清晰展示了不同参数组合的效果和适用场景。最后,文章提出了工程落地的具体方法,包括策略选型、ignore/mask的设计方法论以及分层验证调试的实
【力扣】(中等)787. K 站中转内最便宜的航班 --- 动态规划
787 K 站中转内最便宜的航班 有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cheapest-flights-within-k-stops 解题思路:动态规划,dp[i][k]是.
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
LeetCode 787 K站中转内最便宜的航班[动态规划] HERODING的LeetCode之路
解题思路: K次,找最小值,这样的关键词让我想起了广度优先的方法,但是n的范围最大能到100,这样很可能会有时间复杂度爆炸的用例,所以还是决定使用动态规划,定义dp数组dp[dst][k],表示到达dst经过k次中转所花费的最少金额,当dp[from][k - 1]不为INT_MAX时,即from可到达,那么就更新dp[to][k],状态转移方程为dp[flight[1]][i] = min(dp[flight[1]][i], dp[flight[0]][i - 1] + flight[2]);最后返回d.
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
leetcode787. K 站中转内最便宜的航班(java)
现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。链接:https://leetcode.cn/problems/cheapest-flights-within-k-stops。只要我知道了从 src 到 s1, s2 的最短路径,我不就知道 src 到 dst 的最短路径了吗!s1, s2 是指向 dst 的相邻节点,它们之间的权重我是知道的,分别是 w1, w2。
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
数据结构与算法之动态规划: LeetCode 787. K 站中转内最便宜的航班 (Ts, Py, Go版)
现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到出一条最多经过 k 站中转的路线,使得从 src 到 dst 的 价格最便宜 ,并返回该价格。如果不存在这样的路线,则输出 -1。
Leetcode 787. K 站中转内最便宜的航班 (图论动态规划)
注意以下几个细节: 1. k次中转对应k+1次航班 2. 初始化为INF,定义为一个很大的数,注意防止溢出。 3. 转移的时候本来需要借助邻接表,因为要判断连到指定位置的边,即需要建图。但是注意到其实边的转移实际上不需要有顺序,因为转移t的时候,t-1一定都算出来了。所以直接枚举flights。 class Solution { private: static constexpr int INF = 10000 * 101 + 1; public: int findC...
LeetCode——787. K 站中转内最便宜的航班(Cheapest Flights Within K Stops)[中等]——分析及代码(Java)
LeetCode——787. K 站中转内最便宜的航班[Cheapest Flights Within K Stops][中等]——分析及代码[Java]一、题目二、分析及代码1. 动态规划(1)思路(2)代码(3)结果三、其他 一、题目 有 n 个城市通过一些航班连接。给你一个数组 flights ,其中 flights[i] = [fromi, toi, pricei] ,表示该航班都从城市 fromi 开始,以价格 toi 抵达 pricei。 现在给定所有的城市和航班,以及出发城
LeetCode 787.K站中转内最便宜的航班
LeetCode 787.K站中转内最便宜的航班 有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。 示例 1: 输入: n = 3, edges = [[0,1,100],[1,2,100],[0,2,500]] src = 0, dst = 2, k = 1 输出: 200 解释: 城市航班
java求最便宜转机_Java实现 LeetCode 787 K 站中转内最便宜的航班(两种DP)
787. K 站中转内最便宜的航班有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。示例 1:输入:n = 3, edges = [[0,1,100],[1,2,100],[0,2,500...
K站中转内最便宜的航班
LeetCode 787 K站中转内便宜的航班 有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。 现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。 示例 1: 输入: n = 3, edges = [[0,1,100],[1,2,100],[0,2,500]] src = 0, dst = 2, k = 1 输出: 200 解释: 城市航班
java里转机_Java实现 LeetCode 787 K 站中转内最便宜的航班(两种DP)
787. K 站中转内最便宜的航班有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始,以价格 w 抵达 v。现在给定所有的城市和航班,以及出发城市 src 和目的地 dst,你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如果没有这样的路线,则输出 -1。示例 1:输入:n = 3, edges = [[0,1,100],[1,2,100],[0,2,500...
844



被折叠的 条评论
为什么被折叠?



