关系经济人类预测化学自然
中准网
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

国内大神耗时30天打造算法面试大全,99符合BATJ大厂面试

11月3日 皇极城投稿
  分治算法
  一、基本概念
  在计算机科学中,分治法是一种很重要的算法。字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题直到最后子问题可以简单地直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)
  任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。问题的规模越小,越容易直接求解,解题所需的计算时间也越少。例如,对于n个元素的排序问题,当n1时,不需要任何计算。n2时,只要作一次比较即可排好序。n3时只要作3次比较即可,。而当n较大时,问题就不那么容易处理了。要想直接解决一个规模较大的问题,有时是相当困难的。
  二、基本思想及策略
  分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
  分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做分治法。
  如果原问题可分割成k个子问题,1kn,且这些子问题都可解并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行的。由分治法产生的问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致递归过程的产生。分支与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。
  三、分治法适用的情况
  分治法所能解决的问题一般具有以下几个特征:
  1)该问题的规模缩小到一定的程度就可以很容易地解决
  2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优的结构性质。
  3)利用该问题分解出的子问题的解可以合并为该问题的解;
  4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
  第一条特征是绝大多数问题都可以满足的,因为问题的计算复杂性一般是随着问题规模的增加而增加;
  第二条特征是应用分治法的前提它也是大多数问题可以满足的,此特征反映了递归思想的应用;、
  第三条特征是关键,能否利用分治法完全取决于问题是否具有第三条特征,如果具备了第一条和第二条特征,而不具备第三条特征,则可以考虑用贪心法或动态规划法。
  第四条特征涉及到分治法的效率,如果各子问题是不独立的则分治法要做许多不必要的工作,重复地解决公共的子问题,此时虽然可用分治法,但一般用动态规划法较好。
  四、分治法的基本步骤
  分治法在每一层递归上都有三个步骤:
  step1分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
  step2解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
  step3合并:将各个子问题的解合并为原问题的解。
  它的一般的算法设计模式如下:
  DivideandConquer(P)
  1。ifPn0
  2。thenreturn(ADHOC(P))
  3。将P分解为较小的子问题P1,P2,。。。,Pk
  4。fori1tok
  5。doyiDivideandConquer(Pi)递归解决Pi
  6。TMERGE(y1,y2,。。。,yk)合并的问题
  7。return(T)
  其中P表示问题P的规模;n0为一阈值,表示当问题P的规模不超过n0时,问题已容易直接解出,不必再继续分解。ADHOC(P)是该分治法中的基本子算法,用于直接解小规模的问题P。因此,当P的规模不超过n0时直接用算法ADHOC(P)求解。算法MERGE(y1,y2,。。。,yk)是该分治法中的合并子算法,用于将P的子问题P1,P2,。。。,Pk的相应的解y1,y2,。。。,yk合并为P的解。
  五、分治法的复杂性分析
  一个分治法将规模为n的问题分成k个规模为nm的子问题去解。设分解阀值n01,且adhoc解规模为1的问题耗费1个单位时间。再设将原问题分解为k个子问题以及用merge将k个子问题的解合并为原问题的解需用f(n)个单位时间。用T(n)表示该分治法解规模为Pn的问题所需的计算时间,则有:
  T(n)kT(nm)f(n)
  通过迭代法求得方程的解:
  递归方程及其解只给出n等于m的方幂时T(n)的值,但是如果认为T(n)足够平滑,那么由n等于m的方幂时T(n)的值可以估计T(n)的增长速度。通常假定T(n)是单调上升的,从而当minmi1时,T(mi)T(n)T(mi1)。
  六、可使用分治法求解的一些经典问题
  (1)二分搜索
  (2)大整数乘法
  (3)Strassen矩阵乘法
  (4)棋盘覆盖
  (5)合并排序
  (6)快速排序
  (7)线性时间选择
  (8)最接近点对问题
  (9)循环赛日程表
  (10)汉诺塔
  七、依据分治法设计程序时的思维过程
  实际上就是类似于数学归纳法,找到解决本问题的求解方程公式,然后根据方程公式设计递归程序。
  1、一定是先找到最小问题规模的求解方法
  2、然后考虑随着问题规模增大时的求解方法
  3、找到求解的递归函数式后(各种规模或因子),设计递归程序即可。动态规划
  一、基本概念
  动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
  二、基本思想与策略
  基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任何问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。
  由于动态规划解决的问题多数有重叠子问题这个特点,为减少重复计算,对每一个子问题只解决一次,将其不同阶段的不同状态保存在一个二维数组中。
  与分治法最大的差别是:适合于用动态规划法求解的问题,经分解后得到的子问题往往不是互相独立的(即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解)。
  三、适用的情况
  能采用动态规划求解的问题的一般要具有3个性质:
  (1)最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理。
  (2)无后效性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也就是说,某个状态以后的过程不会影响以前的状态,只与当前状态有关。
  (3)有重叠子问题:即子问题之间是不独立的,一个子问题在下一阶段决策中可能被多次使用到。(该性质并不是动态规划适用的必要条件,但是如果没有这条性质,动态规划算法同其他算法相比就不具备优势)
  四、求解的基本步骤
  动态规划所处理的问题是一个多阶段决策问题,一般由初始状态开始,通过对中间阶段决策的选择,达到结束状态。这些决策形成了一个决策序列,同时确定了完成整个过程的一条活动路线(通常是求最优的活动路线)。如图所示。动态规划的设计都有着一定的模式,一般要经历以下几个步骤。
  初始状态决策决策决策结束状态
  图1动态规划决策过程示意图
  (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。在划分阶段时,注意划分后的阶段一定要是有序的或者是可排序的,否则问题就无法求解。
  (2)确定状态和状态变量:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。当然,状态的选择要满足无后效性。
  (3)确定决策并写出状态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。所以如果确定了决策,状态转移方程也就可写出。但事实上常常是反过来做,根据相邻两个阶段的状态之间的关系来确定决策方法和状态转移方程。
  (4)寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。
  一般,只要解决问题的阶段、状态和状态转移决策确定了,就可以写出状态转移方程(包括边界条件)。
  实际应用中可以按以下几个简化的步骤进行设计:
  (1)分析最优解的性质,并刻画其结构特征。
  (2)递归的定义最优解。
  (3)以自底向上或自顶向下的记忆化方式(备忘录法)计算出最优值
  (4)根据计算最优值时得到的信息,构造问题的最优解
  五、算法实现的说明
  动态规划的主要难点在于理论上的设计,也就是上面4个步骤的确定,一旦设计完成,实现部分就会非常简单。
  使用动态规划求解问题,最重要的就是确定动态规划三要素:
  (1)问题的阶段(2)每个阶段的状态
  (3)从前一个阶段转化到后一个阶段之间的递推关系。
  递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来说,动态规划往往可以用递归程序来实现,不过因为递推可以充分利用前面保存的子问题的解来减少重复计算,所以对于大规模问题来说,有递归不可比拟的优势,这也是动态规划算法的核心之处。
  确定了动态规划的这三要素,整个求解过程就可以用一个最优决策表来描述,最优决策表是一个二维表,其中行表示决策的阶段,列表示问题状态,表格需要填写的数据一般对应此问题的在某个阶段某个状态下的最优值(如最短路径,最长公共子序列,最大价值等),填表的过程就是根据递推关系,从1行1列开始,以行或者列优先的顺序,依次填写表格,最后根据整个表格的数据通过简单的取舍或者运算求得问题的最优解。
  f(n,m)max{f(n1,m),f(n1,mw〔n〕)P(n,m)}
  六、动态规划算法基本框架贪心算法
  一、基本概念:
  所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
  贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。
  所以对所采用的贪心策略一定要仔细分析其是否满足无后效性。
  二、贪心算法的基本思路:
  1。建立数学模型来描述问题。
  2。把求解的问题分成若干个子问题。
  3。对每一子问题求解,得到子问题的局部最优解。
  4。把子问题的解局部最优解合成原来解问题的一个解。
  三、贪心算法适用的问题
  贪心策略适用的前提是:局部最优策略能导致产生全局最优解。
  实际上,贪心算法适用的情况很少。一般,对一个问题分析是否适用于贪心算法,可以先选择该问题下的几个实际数据进行分析,就可做出判断。
  四、贪心算法的实现框架
  从问题的某一初始解出发;
  while(能朝给定总目标前进一步)
  {
  利用可行的决策,求出可行解的一个解元素;
  }
  由所有解元素组合成问题的一个可行解;
  五、贪心策略的选择
  因为用贪心算法只能通过解局部最优解的策略来达到全局最优解,因此,一定要注意判断问题是否适合采用贪心算法策略,找到的解是否一定是问题的最优解。
  六、例题分析
  下面是一个可以试用贪心算法解的题目,贪心解的确不错,可惜不是最优解。
  〔背包问题〕有一个背包,背包容量是M150。有7个物品,物品可以分割成任意大小。
  要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。
  物品ABCDEFG
  重量35306050401025
  价值10403050354030
  目标函数:pi最大
  约束条件是装入的物品总重量不超过背包容量:wiM(M150)
  (1)根据贪心的策略,每次挑选价值最大的物品装入背包,得到的结果是否最优?
  (2)每次挑选所占重量最小的物品装入是否能得到最优解?
  (3)每次选取单位重量价值最大的物品,成为解本题的策略。
  值得注意的是,贪心算法并不是完全不可以使用,贪心策略一旦经过证明成立后,它就是一种高效的算法。
  贪心算法还是很常见的算法之一,这是由于它简单易行,构造贪心策略不是很困难。
  可惜的是,它需要证明后才能真正运用到题目的算法中。
  一般来说,贪心算法的证明围绕着:整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。
  对于例题中的3种贪心策略,都是无法成立(无法被证明)的,解释如下:
  (1)贪心策略:选取价值最大者。反例:
  W30
  物品:ABC
  重量:281212
  价值:302020
  根据策略,首先选取物品A,接下来就无法再选取了,可是,选取B、C则更好。
  (2)贪心策略:选取重量最小。它的反例与第一种策略的反例差不多。
  (3)贪心策略:选取单位重量价值最大的物品。反例:
  W30
  物品:ABC
  重量:282010
  价值:282010
  根据策略,三种物品单位重量价值一样,程序无法依据现有策略作出判断,如果选择A,则答案错误。回溯法
  1、概念
  回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就回溯返回,尝试别的路径。
  回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为回溯点。
  许多复杂的,规模较大的问题都可以使用回溯法,有通用解题方法的美称。
  2、基本思想
  在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。(其实回溯法就是对隐式图的深度优先搜索算法)。
  若用回溯法求问题的所有解时,要回溯到根,且根结点的所有可行的子树都要已被搜索遍才结束。
  而若使用回溯法求任一个解时,只要搜索到问题的一个解就可以结束。
  3、用回溯法解题的一般步骤:
  (1)针对所给问题,确定问题的解空间:
  首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个(最优)解。
  (2)确定结点的扩展搜索规则
  (3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。
  4、算法框架
  (1)问题框架
  设问题的解是一个n维向量(a1,a2,,an),约束条件是ai(i1,2,3,。。,n)之间满足某种条件,记为f(ai)。
  (2)非递归回溯框架
  inta〔n〕,i;
  2:初始化数组a〔〕;
  3:i1;
  4:while(i0(有路可走)and(未达到目标))还未回溯到头
  5:{undefined
  6:if(in)搜索到叶结点
  7:{
  8:搜索到一个解,输出;
  9:}
  10:else处理第i个元素
  11:{
  12:a〔i〕第一个可能的值;
  13:while(a〔i〕在不满足约束条件且在搜索空间内)
  14:{undefined
  15:a〔i〕下一个可能的值;
  16:}
  17:if(a〔i〕在搜索空间内)
  18:{undefined
  19:标识占用的资源;
  20:ii1;扩展下一个结点
  21:}
  22:else
  23:{undefined
  24:清理所占的状态空间;回溯
  25:ii1;
  26:}
  27:}
  (3)递归的算法框架
  回溯法是对解空间的深度优先搜索,在一般情况下使用递归函数来实现回溯法比较简单,其中i为搜索的深度,框架如下:
  1:inta〔n〕;
  2:try(inti)
  3:{undefined
  4:if(in)
  5:输出结果;
  6:else
  7:{undefined
  8:for(j下界;j上界;jj1)枚举i所有可能的路径
  9:{undefined
  10:if(fun(j))满足限界函数和约束条件
  11:{undefined
  12:a〔i〕j;
  13:。。。其他操作
  14:try(i1);
  15:回溯前的清理工作(如a〔i〕置空值等);
  16:}
  17:}
  18:}
  19:}分支限界法
  一、基本描述
  类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。
  (1)分支搜索算法
  所谓分支就是采用广度优先的策略,依次搜索E结点的所有分支,也就是所有相邻结点,抛弃不满足约束条件的结点,其余结点加入活结点表。然后从表中选择一个结点作为下一个E结点,继续搜索。
  选择下一个E结点的方式不同,则会有几种不同的分支搜索方式。
  1)FIFO搜索
  2)LIFO搜索
  3)优先队列式搜索
  (2)分支限界搜索算法
  二、分支限界法的一般过程
  由于求解目标不同,导致分支限界法与回溯法在解空间树T上的搜索方式也不相同。回溯法以深度优先的方式搜索解空间树T,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树T。
  分支限界法的搜索策略是:在扩展结点处,先生成其所有的儿子结点(分支),然后再从当前的活结点表中选择下一个扩展对点。为了有效地选择下一扩展结点,以加速搜索的进程,在每一活结点处,计算一个函数值(限界),并根据这些已计算出的函数值,从当前活结点表中选择一个最有利的结点作为扩展结点,使搜索朝着解空间树上有最优解的分支推进,以便尽快地找出一个最优解。
  分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。问题的解空间树是表示问题解空间的一棵有序树,常见的有子集树和排列树。在搜索问题的解空间树时,分支限界法与回溯法对当前扩展结点所使用的扩展方式不同。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,那些导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被子加入活结点表中。此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所求的解或活结点表为空时为止。
  三、回溯法和分支限界法的一些区别
  有一些问题其实无论用回溯法还是分支限界法都可以得到很好的解决,但是另外一些则不然。也许我们需要具体一些的分析到底何时使用分支限界而何时使用回溯呢?
  回溯法和分支限界法的一些区别:
  方法对解空间树的搜索方式存储结点的常用数据结构结点存储特性常用应用
  回溯法深度优先搜索堆栈活结点的所有可行子结点被遍历后才被从栈中弹出找出满足约束条件的所有解
  分支限界法广度优先或最小消耗优先搜索队列、优先队列每个结点只有一次成为活结点的机会找出满足约束条件的一个解或特定意义下的最优解
  小编是一个有着8年工作经验的java’开发工程师,关于java’编程,自己有做材料的整合,一个完整的java编程学习路线,学习材料和工具,能够进我的群,私信我收取,免费送给大家,希望你也能凭着自己的努力,成为下一个优秀的程序员
  觉得写的还不错的就点个赞,加个关注呗!点关注,不迷路,持续更新!!!
投诉 评论 转载

听我的推荐,新手妈妈少走弯路,记得收藏哦真知新坐标我家宝宝11。1日出生,作为一个准新手妈妈出了月子就自己独立带孩子,趁孩子睡觉闲暇之余终于能给新手宝妈们分享下我家宝宝和妈妈的爱用物以及生活经验。首先是新生儿黄……都退下吧!CBA或进入金元时代!未来属于这2支引援最成功的球老虎打盹儿的时候,森林里的大王就该易主了!疫情的爆发,让CBA各家俱乐部都收紧了口袋过日子,球队的引援也因此受到了巨大的影响,自然也直接导致战绩下滑,这点在强队身上体现最……林豆豆与母亲多年不和,认保姆做干妈,晚年接98岁保姆回身边在近代,我国涌现出了不少杰出的将帅如被称为双子星的林帅和粟裕,他们两人在抗日战争、解放战争中都有着杰出的表现,是让敌军都尊敬的战神级人物。建国之后,在1955年国家也根据……谭世瑛的儿子被枪决,进京向老同学伟人告状,伟人如何处理?每个人都有自己的伙伴,都有一生难忘的挚友。生活是残酷的,出门在外没有父母亲戚的照拂只能靠朋友,所以朋友在人的一生中扮演的角色是十分重要的。有时候一个忠诚的朋友能给自己带来极大的……光遇四天12根红蜡烛,破晓季YYDS,以后会常驻吗?前言:大家好,我是喜欢玩游戏、聊游戏的孟婆小叔。破晓季上线也有几天了,大家的感受如何?对于小编来说,如果要打分评级的话,那是相当满意,至少90分起。毕竟通过任务,就……椎间盘突出患者冬季保健护理指南冬天如何护理腰突中医内科远庚医生现在已经进入冬季了,椎间盘突出的患者们你们还好吗?是不是时不时的会出现疼痛、酸麻、胀痛等情况呢?这都是由于天气气温较低,人体体内的血液循环……国内大神耗时30天打造算法面试大全,99符合BATJ大厂面试分治算法一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是分而治之,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子……20分钟超级快充,200kmh时速,中国设计师设计的特斯拉M百公里加速仅耗时3。5秒,最大续航280km。从去年到今年,以特斯拉为主题的设计概念车型我们看了不少。但既紧扣未来主义主题、审美又不陈腐,且又能将车辆性能、配备等方方面面……2021小米手机该选谁,这四款非常值得选,快来看看吧都2021年了,小米手机值得入的有哪些呢?大家都知道,小米公司口号:小米为发烧而生。讲真的,在同价位中,小米手机的性价比一直很高。问题就来了,这选择一多,就纠结,各种难选。……沈腾易烊千玺张译张艺谋满江红19人全阵容揭晓张艺谋导演新作《满江红》近日官宣定档2023年大年初一上映。今(29)日,该片发布19人全阵容人物海报。沈腾、易烊千玺,双男主直面危机;张译、雷佳音、王佳怡、岳云鹏、潘斌……3个硬盘位锐龙迷你电脑的标杆!华硕PN53是否值得选?昨天我们介绍了主打第12代酷睿标压(移动)处理器的华硕PN64迷你电脑,如果你觉得锐炬Xe核显玩游戏差点意思,还可以关注一下华硕PN53,后者升级到了AMD锐龙6000H平台,……甘肃的春天,万物皆可凉拌每年春季,万物复苏,绿草茵茵之际,不论是地上长的还是树上长的,只要是绿色就会成为甘肃人嘴里的美味,餐桌上的宠儿。接下来带大家一起看看都有哪些?你都吃过吗?漆树芽漆树……
冲破逆境其实很快乐手指甲和肉分离是患的甲癣吗每天至少喝三杯茶?喝绿茶与胃癌风险下降有关吗?复古风毛衣半身裙真高级,搭配裤子简约却有质感,照着穿准没错柑橘幼苗如何施肥知否女星曝恋情!与男子搂抱撒娇亲密无间,凌晨同回家疑同居约基奇三双掘金大胜,哈登伤停欧文空砍2711篮网8连败特雷杨轰42108仍无缘今日最佳!对不起!你碰上NBA怪兽了可爱的小仓鼠女网名成熟唯美有气质此恨绵绵缘来无期第廿一回颜蕊被峰巅卖入青楼野茫茫造句用野茫茫造句大全
夏天跑步减肥穿什么衣服好青春期女生有性幻想是正常的生理现象不用担心炸洋芋球的制作方法热博聚热点网 燃气泄漏着火怎么办天再高不如脚下那片土西湖游记早秋穿搭值得,针织衫搭配半身裙或牛仔裤,轻松穿出名媛气质CBA传奇球星落幕!北控当家扛把子离开,走网红道路遭球迷质疑伴娘应该怎么穿?伴娘服饰搭配技巧学生作文我的魔法学校九所中外合办大学家门口的留学路混剪什么意思混剪的含义

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州