数学建模入门

一. 前言

用Markdown写出来的,放博客园感觉样式好像不大好,2333,各位可以去码云看看:https://gitee.com/hkmayfly/MathematicalModeling/blob/master/README.md

在大学中参加了两次网挑,两次国赛,一次美赛,一次mathorcup,还有一些校赛。两年的时间一晃而过,现在自己也是大三上学期了,建模比赛陪伴了我,也见证了自己的成长。今年美赛是自己最后一次参加数学建模比赛,我本来准备赛后再写这篇博客,但是想到接下来的美赛,希望这篇文章能够帮助后来的朋友们。

二. 关于

这里引用美赛官方给的一段介绍:

Turn theory into practice by entering COMAP’s Mathematical Contest in Modeling (MCM).The study of mathematics as a subject in its own right may have started with Pythagoras, but people have been counting as a basic necessity of everyday life for thousands of years. It follows that mathematics was invented to help us understand and manage the world around us.

通过参加COMAP建模数学竞赛(MCM)将理论付诸实践。
对数学本身的研究可能始于毕达哥拉斯(Pythagoras),但人们将其作为日常生活的基本必需品已有数千年的历史了。因此,发明了数学可以帮助我们理解和管理周围的世界。

What’s in it for you? It’s a chance to challenge your brain, solve a real world math problem, and get recognition for it on an international stage. It’s an excellent opportunity to develop your interpersonal skills through teamwork. It’s also an impressive resume credential and an advantage when applying for internships. Added Attraction: A chance for your team to win the International COMAP Scholarship Award, and more.

有什么用?
这是一个挑战您的大脑,解决现实世界中的数学问题并在国际舞台上获得认可的机会。这是通过团队合作发展人际交往能力的绝佳机会。这也是令人印象深刻的简历证书,也是申请实习的优势。更具吸引力:您的团队有机会赢得国际COMAP奖学金和更多。

What’s in it for your school? The recognition and prestige of being part of COMAP’s 34th annual international event. Meaningful preparation for the real world of problems, politics and financial constraints. Impetus and justification for more applied courses’ a blueprint for your schools future.

你学校里有什么?
成为COMAP第34届年度国际盛会的一部分的认可和声望。为现实中的问题,政治和财务限制做有意义的准备。推动和证明更多应用课程是您学校未来的蓝图。

COMAP’s Mathematical Contest in Modeling (MCM) is Real World Mathematical Modelingwhere research, analytics and applied intelligence reign along with less-quantifiable factors like timing and luck. Think you’re up to it?

COMAP的建模数学竞赛(MCM)是真实世界的数学建模。
研究,分析和应用智能以及诸如时机和运气之类的难以量化的因素占主导地位。认为你有能力吗?

Mathematical Contest in Modeling (MCM), an international contest for high school students and college undergraduates. It challenges teams of students to clarify, analyze, and propose solutions to open-ended problems. The contest attracts diverse students and faculty advisors from over 900 institutions around the world.

建模数学竞赛(MCM)
这是一场针对高中生和大学生的国际竞赛。它挑战学生团队以澄清,分析和提出开放性问题的解决方案。比赛吸引了来自全球900多家机构的多样化的学生和教职顾问。

The Interdisciplinary Contest in Modeling (ICM), is an extension of the Mathematical Contest in Modeling (MCM). It is designed to develop and advance interdisciplinary problem-solving skills as well as competence in written communication.

建模跨学科竞赛(ICM) 是建模数学竞赛(MCM)的扩展。它旨在发展和提高跨学科的问题解决能力以及书面交流能力。

三. 建模相关

0x01 比赛目录

还有其他的数学建模竞赛就没有了解过了,可以自己去搜一下。个人觉得除了国赛、美赛,其余的比赛可以酌情,作为兴趣或者锻炼去参加。

如果学校需要举办数学建模竞赛可以去:http://www.saikr.com/

0x02 历年考点

  • 国赛1992~2018年赛题下载

全国大学生数学建模竞赛(CUMCM)历年试题 [数模知识库]
历年国赛赛题 · 语雀

  • 国赛优秀论文

全国大学生数学建模竞赛论文_教育部中国大学生在线
全国大学生数学建模竞赛优秀论文

  • 美赛1985~2019年赛题下载

美国大学生数学建模竞赛(MCM、ICM)历年试题 [数模知识库]

  • 美赛历年特等奖论文

GitHub - dick20/MCM-ICM: 2004-2017美赛O奖论文

数学建模历年考点

0x03 书籍推荐

  • 首推 《数学建模算法与应用》 司守奎 孙兆亮 主编
    数学建模算法与应用
  • 《数学建模》 吉奥丹诺 等著
    数学建模
  • 《计量经济学》 张晓峒著
    计量经济学
  • 《数学建模方法与分析》 Mark M.Meerschaert著
    数学建模方法与分析

四. 如何进行数学建模?

0x01 队友问题

数学建模是三个人的团队比赛,因此对于刚参加数学建模的人来说,找到一个好的队友提高的效率不止一倍。如果能找到一个数学建模的老混子带你就最好了,你能从他那里学到很多的建模套路。如果队友不合适,请尽快更换。

0x02 比赛分工

建模主要分为:建模 论文 编程,这三个部分。每个人负责一个部分,建模和编程互相帮助,通过建模写出数学公式,编程求解。建模和编程将问题求解过程和结论简要写出,帮助写论文的队友理解,写论文的队友负责丰富和组织求解过程。

0x03 建模流程

实际建模也充满了套路,对于国赛来说,前半天都不用着急,对于美赛来说是前一天。你们需要做的事情只有

  1. 看懂并简单分析每个题的要求。
  2. 选题

接下来,网上所说的五步法就很好。我只进行补充就行
五步法

  • 补充1:针对在进行实际建模前,负责论文的队友可以先将论文的框架搭建出来(美赛和国赛各有一套框架),后续再进行增删查改就行。
  • 补充2:针对第一步提出问题的时候,我们在正式开始的前半天/一天时间,进行的简单分析就起到的作用,这个阶段由写论文的队友来做。
  • 补充3:针对选择建模方法的时候,一定记住一个道理 切忌"我认为",一切文献为王。的国赛当中遵从现有的方法,美赛当中可以采用自己设计的方法。资料查询和下载可以看看后面的资源网站,方法可以看看算法篇。
  • 补充4:针对推倒模型,实际就是将我们的想法通过数学模型表达出来,这个阶段需要三个队友齐心协力了。
  • 补充5:针对求解模型,主要在于建模和编程的队友,这时候合理的算法能够求解,对应工具可以提高效率,可以看看后面的工具篇和算法篇。
  • 补充6:一篇论文一般三个问题,每个问题一个模型最为合适,一般第二问是对第一问的深化,需要用到第一问的结论。
  • 补充7:详细的论文格式,参照历年的优秀论文。在提出问题后,建立模型前,要有符号说明,至于模型解决后的模型检验,可以根据时间来选择需不需要。
  • 补充8:国赛注重结果的正确性,美赛注重方法的合理性。
  • 补充9:一定一定写好摘要。

后续想到,我再添加。

五. 工具篇

主要为大家带来一些,我曾在建模当中用到的软件。

1.MATLAB

介绍:MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C、C++、Java、Python和FORTRAN)编写的程序。

尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。

下载

链接:https://pan.baidu.com/s/1VrgDE0Rld4ezW2UdmLTRyQ
提取码:rsc3

2.SPSS

介绍:SPSS统计是一个软件包,用于交互式或批处理,统计分析。它由SPSS Inc.长期生产,于2009年被IBM收购。当前版本(2015年)的名称为IBM SPSS Statistics。

基本软件中包含的统计信息:

  • 描述性统计:交叉表,频率,描述性,浏览,描述性比率统计
  • 双变量统计:均值,t检验,ANOVA,相关性(双变量,部分,距离),非参数检验,贝叶斯
  • 数值结果的预测:线性回归
  • 识别群体的预测:因素分析,聚类分析(两步法,K均值,分层),判别式
  • 地理空间分析,模拟
  • R扩展(GUI),Python

下载

Mac/Win破解版下载:https://www.macxin.com/archives/1594.html

3.EXCEL

介绍:Microsoft Excel是由Microsoft针对Windows,macOS,Android和iOS开发的电子表格。它具有计算,绘图工具,数据透视表和称为Visual Basic for Applications的宏编程语言的功能。它已成为这些平台上非常广泛应用的电子表格,尤其是自1993年的第5版以来,它已取代Lotus 1-2-3作为电子表格的行业标准。Excel构成Microsoft Office软件套件的一部分。
下载

免费版下载:https://excel.descargar.es/zh/

4.至尊搜索神器

介绍:至尊种子搜索神器是一款功能非常强大的种子搜索器,而且有专门的百度云搜索引擎,百度网盘优质资源一网打尽,还有自定义网站搜索,搜罗天下网站。相比其它种子搜索神器,至尊种子搜索神器的较大优点是:在线39款杀毒软件检测安全,支持按文件大小和收录时间排序,一键下载,还能从搜索结果中更有效的查找,还能搜索较新上映的电影。
下载

至尊搜索神器下载:https://www.crsky.com/soft/74489.html

5.AutoCAD

介绍:AutoCAD是一种商业 计算机辅助设计(CAD)和绘图软件应用程序。AutoCAD 由Autodesk开发和销售,于1989年12月首次发布,它是在带有内部图形控制器的微型计算机上运行的桌面应用程序。在引入AutoCAD之前,大多数商业CAD程序都在大型计算机或小型计算机上运行,每个CAD操作员(用户)都在单独的图形终端上工作。自2010年以来,AutoCAD已发布为移动和网络应用程序 以及作为AutoCAD 360销售的产品。
下载

AutoCAD破解版下载:
https://zixue.3d66.com/popsoft_3.html
https://www.jb51.net/softs/604812.html

6.CHFSGUI

介绍:这款软件主要用来比赛时的文件共享,在国赛和美赛的时候,组委会都会监控网上,因此对于小组在通信软件上交流,有可能会被取消比赛资格,但如果又要互发做的代码和论文怎么办?这时候这款软件就发挥作用了,只需要你和你的队友在同一局域网下,就能共享指定文件夹的文件。

下载

激活码:
llion
mecssi
mecssi
MTWE691-011084-R0XYL
下载链接:https://www.sunweihu.com/4152.html

7.MathType

介绍:MathType是由Design Science公司设计的一个可以在Word、PowerPoint等字处理软件和演示程序中编辑科学公式编辑器。支持TeX和LaTeX,以及国际标准MathML,并能够把公式转化为支持Web的各种图形,也支持WMF和EPS输出。

下载

https://www.lanzous.com/i85zojg

8.万彩办公大师

介绍:免费小巧的办公小工具百宝箱。万彩办公大师OfficeBox是一款由万彩科技研发的免费办公工具软件超级套装,几乎可以满足日常各种办公工具需求;它内置了60多款强大的,无任何广告及插件的绿色办公组件,如PDF工具集;文档/音视频/图片转换工具集;OCR工具集;屏幕录制工具集;图片处理工具集;文件处理工具集等。所有的套装工具不需要安装,直接可以绿色加载启动,省去了用户为安装各种办公软件而寻找工具、安装及卸载的麻烦。

下载

http://www.wofficebox.com/

9.冰点下载

介绍

  1. 支持百度、豆丁、畅享、MBALib、HP009、MAX、Book118等文库文档。
  2. 无需积分也无需登录就可以自由下载百度文库和豆丁文库。
  3. 支持多个任务同时下载和断点续传下载。
  4. 生成的pdf文档与原始文档质量等同。

下载

http://soft1.jlyhkj3.cn/nsfp/84.htm

10.Lingo

介绍:LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。
其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。能方便与EXCEL,数据库等其他软件交换数据。LINGO18.0为最新版本。
下载

Lingo破解版下载:
https://www.aiweibk.com/7403.html
https://www.isharepc.com/5927.html

11.EViews

介绍:EViews是为Windows设计的统计分析软件,主要应用于计量经济分析。 EViews是由Quantitative Micro Software(QMS)开发的。1.0版于1994年3月推出,代替了原先的MicroTSP软件,目前最新的版本是9.0。

EViews结合了电子表格和相关的数据库技术以及传统统计软件分析功能,并且使用了单击图形用户界面。EViews可以用于一般的统计分析,但它对于计量经济分析特别有用,比如横截面和面板数据分析及时间序列的估计和预测。它支持Excel,SPSS,SAS,Stata,RATS 和TSP等文件格式,并接通ODBC数据库。
主要用于:

  1. 数据处理
  2. 图,表和线轴
  3. 预测
  4. 估计
  5. 测试和诊断

下载

EViews下载:https://www.jb51.net/softs/563831.html

六. 算法篇

1.优化问题

1.1 线性规划

介绍
一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性规划问题。满足线性约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。决策变量、约束条件、目标函数是线性规划的三要素。
应用领域

  • 运输问题指派问题
  • 对偶理论
  • 灵敏度分析

参考文章

  1. 线性规划 - MBA智库百科
  2. 线性规划 - 维基百科,自由的百科全书
  3. MATLAB线性回归方程与非线性回归方程的相关计算
  4. 利用Matlab求解线性规划问题
  5. Optimization Toolbox Documentation
  6. Global Optimization Toolbox Documentation

1.2 非线性规划

介绍:非线性规划研究一个n元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。目标函数和约束条件都是线性函数的情形则属于线性规划。
应用领域

  • 约束极值
  • 无约束极值

参考文章

  1. 非线性规划 - MBA智库百科
  2. 非线性规划问题的matlab求解
  3. MATLAB:非线性规划fmincon

1.3 动态规划(背包问题)

介绍:动态规划(英语:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划的思想就是将问题分为一个个小问题,这一次问题的解,由上一次问题的解得出,重点主要把握状态和状态转移方程。
应用领域

  • 最优子结构
  • 无后效性
  • 子问题重叠
  • 查找匹配问题

参考文章

  1. 动态规划 - 维基百科,自由的百科全书
  2. 算法-动态规划
  3. 动态规划:从新手到专家
  4. 【学习笔记】动态规划—各种 DP 优化

1.4 粒子群算法

介绍:粒子群优化(Particle Swarm Optimization, PSO),又称微粒群算法,是由 J. Kennedy 和 R. C. Eberhart 等,于1995年开发的一种演化计算技术,来源于对一个简化社会模型的模拟。其中“群”来源于微粒群符合 M. M. Millonas 在开发应用于人工生命(artificial life)的模型时所提出的群体智能的5个基本原则。“粒子(particle)”是一个折衷的选择,因为既需要将群体中的成员描述为没有质量、没有体积的,同时也需要描述它的速度和加速状态。
应用领域

  • 模糊控制器设计
  • 车间作业调度
  • 机器人实时路径规划
  • 自动目标检测
  • 时频分析

参考文章

  1. 粒子群优化 - 维基百科,自由的百科全书
  2. 优化算法——粒子群算法(PSO)
  3. 谁能详细帮我形象详细解释一下粒子群算法? - 知乎
  4. 粒子群优化算法介绍

我提供一个自己之前写的PSO算法代码:

clc;clear;close all;  
% 初始化种群  
f= @(x)x .* sin(x) .* cos(2 * x) - 2 * x .* sin(3 * x); % 函数表达式  
figure(1);ezplot(f,[0,0.01,20]);  
Num = 50;                         %设置初始种群个数  
n = 1;                          % 空间维数  
iter_num = 100;                      % 设置最大迭代次数       
Limit = [0, 20];                % 设置位置参数限制  
vlimit = [-1, 1];               % 设置速度限制  
w = 0.8;                        % 惯性权重  
c1 = 0.5;                       % 自我学习因子  
c2 = 0.5;                       % 群体学习因子   
for i = 1:n  
    x = Limit(i, 1)  + (Limit(i, 2) - Limit(i, 1)) * rand(Num, n);%初始种群的位置 ,Limit是一行两列的矩阵
end  
v = rand(Num, n);                  % 初始种群的速度  
xm = x;                          % 每个个体的历史最佳位置  
ym = zeros(1, n);                % 种群的历史最佳位置  
fxm = zeros(Num, 1);               % 每个个体的历史最佳适应度  
fym = -inf;                      % 种群历史最佳适应度  
hold on  
plot(xm, f(xm), 'ro');title('Initial state diagram');  
figure(2)  
%% 群体更新  
iter = 1;  
record = zeros(iter_num, 1);          % 记录器  
while iter <= iter_num  
     fx = f(x) ; % 个体当前适应度     
     for i = 1:Num        
        if fxm(i) < fx(i)  
            fxm(i) = fx(i);     % 更新个体历史最佳适应度  
            xm(i,:) = x(i,:);   % 更新个体历史最佳位置  
        end   
     end  
if fym < max(fxm)  
        [fym, nmax] = max(fxm);   % 更新群体历史最佳适应度  nmax是返回的行数
        ym = xm(nmax, :);      % 更新群体历史最佳位置  
 end  
    v = v * w + c1 * rand * (xm - x) + c2 * rand * (repmat(ym, Num, 1) - x);% 速度更新  
    % 边界速度处理  
    v(v > vlimit(2)) = vlimit(2);  
    v(v < vlimit(1)) = vlimit(1);  
    x = x + v;% 位置更新  
    % 边界位置处理  
    x(x > Limit(2)) = Limit(2);  
    x(x < Limit(1)) = Limit(1);  
    record(iter) = fym; %最大值记录 ,被存入一维矩阵 
%     x0 = 0 : 0.01 : 20;  
%     plot(x0, f(x0), 'b-', x, f(x), 'ro');title('状态位置变化')  
%     pause(0.1)  
    iter = iter+1;  %求解最大值的迭代过程
end  
figure(3);plot(record);title('convergence procedure')  
x0 = 0 : 0.01 : 20;  
figure(4);plot(x0, f(x0), 'b-', x, f(x), 'ro');title('Final status')  
disp([' maximum:',num2str(fym)]);  
disp(['State variable:',num2str(ym)]);

有关于粒子群的算法视频,因为太大没办法上传,大家可以关注我的公众号,发送"粒子群算法视频",我会发给大家。

2.图与网络模型

2.1 最短路径

介绍:最短路径不难理解,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。,主要的算法有DFS,BFS,Dijkstra,Floyd和SPFA。

应用领域

  • 确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。适合使用Dijkstra算法。
  • 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
  • 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。
  • 全局最短路径问题 - 求图中所有的最短路径。适合使用Floyd-Warshall算法。

参考文章

  1. 图的四种最短路径算法
  2. 算法系列——四种最短路算法
  3. 迷宫的最短路径问题,分别用DFS和BFS做
  4. 迷宫最短路径
  5. Floyd(弗洛伊德)算法(C语言)

2.2 最小生成树

介绍
一个连通图可能有多个生成树。当图中的边具有权值时,总会有一个生成树的边的权值之和小于或者等于其它生成树的边的权值之和。广义上而言,对于非连通无向图来说,它的每一连通分量同样有最小生成树,它们的并被称为最小生成森林。

应用领域
网络G表示各个小镇的分布网,顶点表示小镇,边表示小镇之间的距离,现在技术人员要在每个小镇安装一座基站,求最小生成树(最短路径)。

参考文章

  1. 图的基本算法(最小生成树)
  2. 最小生成树之Kruskal和Prim算法
  3. Graph Data Structure And Algorithms
  4. python最小生成树kruskal与prim算法

2.3 旅行商问题

介绍:给定一系列城市和每对城市之间的距离,求解访问每一座城市一次并回到起始城市的最短回路。它是组合优化中的一个NP困难问题,在运筹学和理论计算机科学中非常重要。

应用领域

  • 旅行购买
  • 车辆路径
  • 企划、物流、芯片制造

参考文章

  1. TSP问题
  2. 使用动态规划求解旅行商问题
  3. 遗传算法的C语言实现(二)-----以求解TSP问题为例
  4. python绘制旅行商(TSP)问题的路线图

3.最小二乘法

介绍:又称最小平方法,是一种数学优化方法。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便的求得未知的数据,并使得求得的数据与实际数据之间误差的平方和为最小。

应用领域

  • 求线性/非线性方程

参考文章

  1. 最小二乘法 - 维基百科,自由的百科全书
  2. matlab最小二乘法数据拟合函数详解
  3. MATLAB实现最小二乘法
  4. 最小二乘法曲线拟合以及Matlab实现

4.预测方法

4.1 灰色预测

介绍:灰色预测法是一种对含有不确定因素的系统进行预测的方法。分类:

  • 灰色时间序列预测;即用观察到的反映预测对象特征的时间序列来构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。
  • 畸变预测;即通过灰色模型预测异常值出现的时刻,预测异常值什么时候出现在特定时区内。
  • 系统预测;通过对系统行为特征指标建立一组相互关联的灰色预测模型,预测系统中众多变量间的相互协调关系的变化。
  • 拓扑预测;将原始数据作曲线,在曲线上按定值寻找该定值发生的所有时点,并以该定值为框架构成时点数列,然后建立模型预测该定值所发生的时点

参考文章

  1. 灰色预测 - 知乎
  2. 灰色预测模型GM(1,1) 与例题分析
  3. 灰色预测法 - MBA智库百科

4.2 多元多项式回归预测

介绍:多项式曲线趋势预测法是曲线趋势形式的一种,它以多项式方程配合时间序列资料的真实曲线趋势,预测未来。

应用领域

  • 能源消耗,生态问题预测
  • 编制可行性研究,销售计划,生产计划,财务计划

参考文章

  1. MATLAB—多元多项式回归预测模型
  2. 求通过matlab实现多元线性回归预测
  3. Matlab多项式回归实现

4.3 插值与拟合

介绍:在数值分析的数学领域,插值是一种估计,一种在一组离散的已知数据点范围内构造新数据点的方法。常用差值方法有:分段插值,线性插值,多项式插值,样条插值。形象的说,
拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。

应用领域

  • 求线性/非线性方程
  • 预测

参考文章

  1. Interpolation
  2. MATLAB拟合和插值
  3. Interpolation - Wikipedia
  4. Matlab插值和拟合
  5. Interpolation methods

5.其他

还有其他的算法,例如搜索匹配相关的BF,KMP,动态规划,还有图像处理相关的,不一一列举,在比赛当中遇到后再查询即可。

七. 资源网站

八. 最后

希望各位能够在数学建模竞赛中取得好成绩,也希望各位在被数学肝模折磨的同时,也能够体会到解决实际问题所带来的乐趣。同时,欢迎大家关注我的公众号,我会为大家带来更多优秀的方法和经验!

引用】:

 

关注我的公众号,发送“数学建模资料”获取资源!

 

posted @ 2019-12-24 23:24  Hk_Mayfly  阅读(3924)  评论(5编辑  收藏  举报