QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1541|回复: 0
打印 上一主题 下一主题

算法越学越扎心,有没啥破解之法?

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2020-4-24 17:58 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta

    . y2 D% Z! X4 D2 Q算法越学越扎心,有没啥破解之法?
    ! l* G: `: r% r" O/ k算法越学越扎心,有没啥破解之法?
    5 ~' D3 D( r: v7 r, M' l" o1 h
    2 i( y$ A* f+ N4 X3 n对于算法的学习,我也是从一个小白一步步走来,当然,现在仍然很菜,,,不过,鉴于我觉得还有一些人比我更菜了,我决定谈谈我算法学习过程走过的坑,以及自己总结的一些经验。* y4 l. _/ e$ p) V' j0 z
    0 A5 p; ]# n4 o. L' [- w# K
    切勿盲目刷题:刷题前的知识积累6 r5 |- C2 b9 o4 i( Z/ y
    . k; {; u) O# R6 w
    说实话,想要提高自己的算法,真的没啥捷径,我觉得最好的捷径就是脚踏实地着多动手去刷题,多刷题。% _. M: w- \1 l% s( l

    0 ?7 a7 d3 x: n# R* N3 g1 W7 o& T( y但是,我必须提醒的是,如果你是小白,也就是说,你连常见的数据结构,如链表、树以及常见的算法思想,如递归、枚举、动态规划这些都没学过,那么,我不建议你盲目疯狂着去刷题的。而是先去找本书先去学习这些必要的知识,然后再去刷题。/ E# ]3 u5 a5 A: L- |9 G

    8 F0 h5 p, ~. M5 [" U2 x因为,如果这些基础都不懂的话,估计一道题做了几个小时,然后看答案都看不懂,做题没有任何思路,这是很难受的。久而久之,估计没啥动力了,我刚开始就是这样,一道题答案看一天,然而还是不大懂,什么回溯啊,暴力啊,还不知道是啥意思。' U1 I5 \+ g( Y0 R3 I
    " F- W" @; A5 x2 f
    也就是说,假如你要去诸如leetcode这些网站刷题,那么,你要先具备一定的基础,这些基础包括:6 ?! p( L, D5 I0 `0 \9 ]' G" g1 G" z
    + \8 K1 W' E' N% S3 f9 V' y
    1、常见数据结构:链表、树(如二叉树)。(是的,链表和二叉树是重点,图这些可以先放着)
    2 t& P1 I0 t( J2 n- }# s- |4 `( |7 G: a$ A* C
    2、常见算法思想:贪婪法、分治法、穷举法、动态规划,回溯法。(贪婪、穷举、分治是基础,动态规划有难度,可以先放着)
    , G; m0 ]: O5 B9 E* y8 u( @/ i, m
    以上列出来的算是最基本的吧。就是说你刷题之前,要把这些过一遍再去刷题。如果你连这些最基本的都不知道的话,那么你再刷题的过程中,会很难受的,思路也会相对比较少。
    ) W) n& ^2 g( j
    # d- Y7 A% L# R" N, X* S! o总之,千万不要急,先把这些基本的过一遍,力求理解,再去刷题。0 V% `2 H# u2 G
    5 h! V- ?0 c: J* s7 Y
    在这里,我推荐基本我大一时看过的书籍吧,感觉还是非常不错的,如果对于数据结构时零基础的话,那么我建议你可以看《数据结构与算法分析:C语言描述版》这本书,这本书自认为真的很 nice,当时我把这本书里面的全部都看了,并且 coding 了一遍,感觉整个人有了质的飞跃。
    & w# z$ ^9 ^, `) ^# v% i3 n3 |, @8 y8 r: j& h
    后面我时在一些学校的OJ刷题,当时看的一本书叫做《挑战程序设计大赛》,日本作家写的,我觉得这本书也很nice,里面有分初级,中级和高级三个模块,基础比较差的可以从初级开始看起。, @" y* [+ i2 V4 q% W1 o

    + ?2 e+ ]2 m. x* \/ q' o7 h当然,这两本书,你可以在这个Github上找到:https://github.com/iamshuaidi/CS-Book
    " X; C  Z- e- e" J总结下:8 s' T& I. v) N8 i: `
    - [( O: h9 e- V  U/ c4 `7 `
    提高数据结构与算法没啥捷径,最好的捷径就是多刷题。但是,刷题的前提是你要先学会一些基本的数据结构与算法思想。: ?7 c& C5 Y+ P* Z$ R
    4 `1 F. o/ M# h1 o. L2 ^& q
    AC不是目的,我们要追求完美. g3 C2 {% g& H
    " h! w0 f! B8 c0 o( o, ?7 X
    如何刷题?如何对待一道算法题?. y0 Y# e3 L& w( y
    ' B7 S( |8 X% F& W- d+ f5 c) y; w
    我觉得,在做题的时候,一定要追求完美,千万不要把一道题做出来之后,提交通过,然后就赶紧下一道。我认为这意义不大,因为一道题的解法太多了,有些解法态粗糙了,我们应该要寻找最优的方法。# s, b0 O4 V4 m! \. p6 y6 D' d+ l
    ! r+ ^4 h$ y( u' ^6 d. k' w7 I
    算法能力的提升和做题的数量是有一定的关系,但并不是线性关系。也就是说,在做题的时候,要力求一题多解,如果自己实在想不出来其他办法了,可以去看看别人是怎么做的,千万不要觉得模仿别人的做法是件丢人的事。& e- X% {! G5 z' R

    , S- o7 s/ s) [我做题的时候,我一看到一道题,可能第一想法就是用很粗糙的方式做,因为很多题采用暴力法都会很容易做,就是时间复杂度很高。之后,我就会慢慢思考,看看有没其他方法来降低时间复杂度或空间复杂度。最后,我会去看一下别人的做法,当然,并不是每道题都会这样执行。3 h8 J9 y+ G- P& @2 A. j* s

    0 [/ w) s2 ]& v8 |衡量一道算法题的好坏无非就是时间复杂度和空间复杂度,所以我们要力求完美,就要把这两个降到最低,令他们相辅相成。4 b3 [% N! [0 U7 t$ h8 a: H
    2 k- T, P0 Y8 u8 H. b: k5 }
    我举道例题吧:* A8 s- V, J+ }; b
    & N& I8 o* `5 Z1 j/ z( a! U
    问题: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法?9 c1 R( X) t8 B; q6 j: h% J

    9 Q0 g$ j" {) A5 H, I2 X" `! z这道题我在以前的分章分析过,不懂的可以先看下之前写的:递归与动态规划—基础篇1) Z. ]- l( V- s" z; m: w
    , _5 i, @4 ?1 ~8 @8 |4 P
    方法1::暴力递归* b2 q1 L3 O: I2 o) i& l% @  M% A

    0 x7 r, c3 b+ n: |( u: J* j这道题不难,或许你会采取下面的做法:& D9 b6 N9 Y+ I3 f* V; ^

    * A" X/ f* _& npublic int solve(int n){
    0 z3 U/ D* }& F4 s0 k3 n8 D    if(n <= 2){7 s: K* X& F7 k; M4 O( @4 G0 G
            return n;
    & o" M# L- w( z% j+ H/ P5 S    }else{9 s% m0 V  \1 C7 P
            return solve(n-1) + solve(n-2);
    . @  ^/ a/ E# u* e    }( f" r# G1 ^* L4 |. V
    }$ a) H  f8 S0 f0 d7 z* H% U
    1
    + y$ y; T& E3 \1 W( V& o2
    $ Y4 c. s* v$ j0 z) T9 h5 n$ v3
    / P* i5 O; q0 N4$ u' K, f0 `% ]" ?6 o9 Y/ w
    5
    * e& Q1 k" t9 R- C64 j9 t2 S% ~1 B* D" J$ H" V6 e
    73 v+ o. Q! F! G& b" b. ^
    这种做法的时间复杂度很高,指数级别了。但是如果你提交之后侥幸通过了,然后你就接着下一道题了,那么你就要好好想想了。
    , E" W( X3 N% T( Y5 F$ q. f8 Q$ P( V/ b, _. {# h) Q
    方法二:空间换时间
    & h' \4 ~% R/ T2 `
    * _% [0 L  F% g4 K$ ]: }7 s0 e9 ~; \力求完美,我们可以考虑用空间换时间:这道题如何你去仔细想一想,会发现有很多是重复执行了。不行你可以画个图
      A" n8 |! d- {- M5 H5 o5 f; i$ g
    " S8 d: Z/ O) `所以可以采取下面的方法:9 ]$ x1 A8 n: C4 _: N1 i7 z
    6 ?1 Q! p2 X* e% N) c- P& L8 B7 S
    //用一个HashMap来保存已经计算过的状态
    ) u6 |. p5 z# s$ S  [0 Fstatic Map<Integer,Integer> map = new HashMap();* z+ @* X& L* ~5 j2 @- q
    public static int solve(int n){. k( _/ F( @0 \
             if(n <= 2){8 [" q0 R6 `7 R% [9 y
            return n;6 ^. \6 |; ~: W3 y1 I' }
        }else{//是否计算过) j* C3 M4 P$ U
            if(map.containsKey(n)){6 i; x. a4 ]1 L$ L
                return map.get(n);+ s6 J; r! C! r$ `
            }else{1 Q1 z& Q1 P& Y8 |* N& c. [
                int m = solve(n-1) + solve(n-2);  U1 |: s* n/ r- a
                map.put(n, m);
    / ~) E/ J8 e' k. X% \) I6 C# M/ A            return m;  w5 C) Y3 v: q
            }5 U/ n, B2 _. Z. |6 |( p$ s  j
        }2 N5 Z6 R# F7 ]2 R" h
    }
    ; s1 r8 y, r6 t. v, M1 l% G  u' h! v; }$ g
    1+ d; C& c$ |0 G2 r: g* M% p
    2
    # l# h' ?, {2 q' j3
    2 t3 P3 W* D& ^" X: g40 z+ U% J2 G; S) x, D' Q
    5! i: q$ P& a; \- A0 C0 n) e
    6+ A# Q6 s3 q/ ?$ h
    7
    ) ]& E& U; Z8 T" }0 h8
    0 c  u, c) j% \. m! A3 Z- U) R9& w$ c/ D6 N* x6 @
    10
    & B; h& |1 K3 u# k' g11+ F; f, O$ W+ M8 E* S/ U+ D
    12/ T% H7 l; }8 o
    13
    & \  P8 c0 \, x  V3 t; x* n% p% W# U142 n8 r$ @) h* ?2 J/ u, W, o
    15
    3 @0 w0 I  M# {' R16! @; L/ d0 l* W) J9 u. a1 d
    这样,可以大大缩短时间。也就是说,当一道题你做了之后,发现时间复杂度很高,那么可以考虑下,是否有更好的方法,是否可以用空间换时间。
    6 C0 c* e0 t* a/ w% Y' o/ {* r' ?0 ]* |9 k/ q. X
    方法三:斐波那契数列& e! x2 s( X% w0 Y4 m

    % F* D# z' V% O实际上,我们可以把空间复杂度弄的更小,不需要HashMap来保存状态:; a. c2 j4 i# S1 \
    * b) F' }! e( r' ?' F: q
    public static int solve(int n){! v1 L% ~+ U+ c+ \- `; e
        if(n <= 2){" h* K, f2 P; l; [; x+ m" |# M
            return n;) b( F) w& p8 @2 q9 C6 p; q
        } " F+ _0 Y& P! s5 C% X; p( [; K* l
        int f1 = 0;! A5 I7 m; n: p9 a6 P: q. w5 m
        int f2 = 1;
      u1 m  j) K7 z" j& N1 S% w    int sum = 0;2 Y* m! Q6 I" I  y7 @- B9 o
        for(int i = 1; i<= n; i++){8 d1 e( t$ G$ V' J. g3 }0 a* O9 @8 d
            sum = f1 + f2;( ^' Y& `4 ^9 @0 z  w& s% C$ [
            f1 = f2;+ Q  m0 s) d+ n1 M/ D& Y$ z
            f2 = sum;
    ' g- P7 j9 o6 Q: b    }
    * |& u1 f) C! p+ Q  s, C1 b    return sum;* ], P5 M$ Z) h; o
    }
    2 }8 Q: n5 s& v+ `1) l* N4 T& ~. d, G" Z& g
    2( {6 A, d& i+ n( D+ J; x" N
    3
    1 Z( I: w9 V1 V( i4
    + T  l& n# y4 U1 b5. R- ^7 _' W8 c- g/ R. m
    6
    5 K6 {# j% z5 e' J% @76 z7 U2 y$ v3 N% k, j  C
    80 r3 b: ~0 l- w0 W
    9: s7 i% b5 h1 f0 L
    100 g9 g8 x' t# r9 z# F
    111 ]0 O; v# o* C) Y; h1 F0 b
    12
    5 r  C9 P- Q0 Y$ Y( i, b. y13
    1 B/ Q3 H3 C5 k$ c' D0 ^14
    4 s7 b# `8 f2 `我弄这道题给你们看,并不是在教你们这道题怎么做,而是有以下目的:6 U. B8 ?( P9 t7 s& w& E
    / _8 U2 o8 ~  B4 b. O6 S2 Z! s- T
    1、在刷题的时候,我们要力求完美。
    7 _9 l5 Z) a4 Y' H
    6 M# X' c9 d7 _. ~2、我想不到这些方法啊,怎么办?那么你就可以去看别人的做法,之后,遇到类似的题,你就会更有思路,更知道往哪个方向想。7 |, q% W- h% x: h  K
    9 S+ _7 _  _( V% l0 R' ]
    3、可以从简单暴力入手做一道题,在考虑空间与时间之间的衡量,一点点去优化。2 P/ [  U! X; `8 ?
    , ~  d7 v  u7 {
    挑战自己,跳出舒适区
    & w( U6 F# P% l( \$ ^3 z8 c; b
    : S6 P4 ~, M' c+ P什么叫舒适区?在刷题的时候,可能有一类题是你比较懂的,你每次一看就有思路,然后半个小时就撸好代码,提交代码,然后通过了,然后,哇,又多刷了一道题,心里很舒服。
    8 g. X. \: f  G. Z  N2 G& I" ?' G, }* D& k
    但是,记住,前期你可以多刷这种题练手,提升自己的乐趣,但,我还是建议你慢慢跳出舒适区,去做一些自己不擅长的题,并且找段时间一直刷这种题。例如,我觉得我在递归方面的题还是挺强的,3 g# W  t6 R3 k# f: s! Y
    但是,我对动态规划的题,很菜,每次都要想好久,每次遇到这种题都有点害怕,没什么信心。不过有段时间我觉得只刷动态规划的题,直接在 leetcode 选定专题,连续做了四五十道,刚开始很难受,后来就慢慢知道了套路了,一道题从两三个小时最后缩到半小时,简单的十几分钟就搞定。感觉自己对这类型的题也不惧怕的。: C* I2 D, v. g8 F3 C# [3 c( s1 {4 e. u
    . z$ b" L/ v) h% g' K; L( [
    当然,对于动态规划的学习,大家也可以看我这篇广受好评的文章:为什么你学不过动态规划?告别动态规划,谈谈我的经验
    $ q, u" F5 M0 {2 r( |; p2 x; S6 }9 m
    所以,建议你,一定要学好跳出自己的舒适区。# U# \+ v2 K6 n7 d3 G2 `6 T
    ( M' v5 @% _  Z, a
    一定要学会分类总结+ b  m8 i* q" i) m8 S4 ~
    / y) Q8 Y0 Z' s
    有些人以为 leetcode 的题刷的越多,就一定能越厉害,其实不然,leetcode 虽然有 1000 多道题,但题型就那么几类,我们前期在刷的时候,我是建议按照题型分类刷题的,例如我这整理刷二叉树相关,然后刷链表相关,然后二分法,然后递归等等,每刷一种题型,都要研究他们的套路,如果你愿意去总结,那么 leetcode 的题,其实你刷几百道,有目的、挑选的刷,我觉得就差不多了。
    - q' a4 F: Q. {- p5 J1 s! o5 K
    ! h+ I3 _2 w5 D我看过一本书,叫做《程序员代码面试指南:IT 名企算法与数据结构题目最优解》,这本书就非常不错,里面按照栈,队列,链表,二叉树,字符串等一个专题一个专题来刷的,并且每道题都给出了最优解,而且里面的题有一定的难度,感兴趣的,真心不错,如果你把这本书的题全部搞定,并且总结相关套路,那么你的算法一定有很大的提升。' A, z1 p# @, a9 A1 z% R1 ^

    # j" O8 U4 P& p, k) B' U% e推荐一些刷题网站" e% E4 g9 p8 _  }/ X# Y. r6 d

      x) {+ V/ L" d9 @1 r, e我一般是在leetcode和牛客网刷题,感觉挺不错,题目难度不是很大。$ D3 W" R$ Y% ?' d( X
    ( T8 w2 _& u4 i* Z( h
    在牛客网那里,我主要刷剑指Offer,不过那里也有个在线刷leetcode,不过里面的题量比较少。牛客网刷题有个非常方便的地方就是有个讨论区,那里会有很多大佬分享他们的解题方法,不用我们去百度找题解。所以你做完后,实在想不出,可以很方便着去看别人是怎么做的。
    , b  s+ O9 E3 q9 D- R  w! t2 N! V6 j" b6 \5 `( n# w) C- w
    至于leetcode,也是大部分题目官方都有给出答案,也是个不错的刷题网站。你们可以两个挑选一个,或者两个都刷。9 J8 {2 m# i% ?( o, q, q

    ! }  X8 k$ b& a1 ^9 \% C当然,还有其他刷题的网站,不过,其他网站没刷过,不大清除如何。
    . p0 z2 F( k- v
    ' f- ?5 C# o0 |& d) U1 v至于leetcode,有中文版和英文版
    1 a) r& ?8 J, H0 `* Q+ M- r! Q7 f. A  T5 A! B) ~
    leetcode有中文版
    ( q& y. S* E3 B. M8 t& N$ C1 ^3 M
    6 N4 ^7 P) |3 o0 Q3 d7 a英文版6 B" u/ g$ z' z' g! i

    ! }# ]; ?4 K) u, m根据自己的兴趣选。
    - ?0 E. N0 x. W5 |& `) M5 R$ x2 d- g3 x) P$ ]$ j2 V
    学习一些解题技巧5 h& b0 W3 g4 c4 e8 E

    9 H# _: a6 J# [* h说实话,有些题在你没看别人的解法前,你好不知道有这么美妙优雅的解法,看了之后,卧槽,居然还可以这样。而我们在刷题的过程中,就要不断累积这些技巧,当你累计多了,你就会形成一种" N9 a) K/ X. X6 P
    神经反应,一下子就想到了某种方法。解题技巧很多,例如数组下标法、位图法、双指针等等,我自己也分享过一篇总结一些算法技巧的文章
    ( D* X6 W  E7 }: ]6 z5 t
    6 ~' X2 ~+ ~; w  P" l3 P0 m推荐阅读:一些常用的算法技巧总结
    % ^: C; r6 @  Y4 e+ G; Y
    ' o0 f' {/ G/ T, k9 ^例如在刷题的时候,我们要学会巧用双指针、数组下标法、位运算等等技巧来解决问题,可能会有意想不到的效果。我给你再找点我之前写文章的一些例子吧:
    " K8 n- e- ?" P7 F9 \4 `0 O3 d5 l6 a- B! I% G; D/ X, J( _
    分享一道解法巧妙的算法题
    ! O) y) g* o- L* \/ u
    ; N: y  i# z/ q0 l( v& V【算法技巧】位运算装逼指南
    # n' P) t( S9 T
    . {* r* c  s6 W$ M& u1 M! u5 Z这是个长期累积的过程,我自己也精彩在我的公众号里分享一些解题的文章,感兴趣的可以关注我的公众号:帅地玩编程。* C" x+ P: m* F

    % g" q) g$ U9 k, F& Y9 ?再说数据结构发重要性& P. h% g. O$ p/ k6 r
    / ]; j$ p3 u; |% q
    前面我主要是说了我平时都是怎么学习算法的。在数据结构方法,我只是列举了你们一定要学习链表和树(二叉堆),但这是最基本的,刷题之前要掌握的,对于数据结构,我列举下一些比较重要的:4 N$ n, s( X. C+ k* f" }
    9 F/ K0 ]8 r1 U, D6 A, Z
    1、链表(如单向链表、双向链表)。$ N2 v, W9 X/ E

    * h  L9 u# \+ g: D2、树(如二叉树、平衡树、红黑树)。
    6 S6 a6 B& y4 b! J0 i6 p) t- X, x" J; l
    3、图(如最短路径的几种算法)。/ c& k+ o  t+ t; m+ m. q

    * M8 Z  _2 g& q4、队列、栈、矩阵。
    ' h! E/ ]3 R. y9 q1 t, V- l; C; @2 {" T# |, q+ X
    对于这些,自己一定要动手实现一遍。你可以看书,也可以看视频,新手可以先看视频,不过前期可以看视频,之后我建议是一定要看书。
    8 X6 j; h3 F9 j( Z0 X# G
    - [  ]: t3 V# t8 ^- m2 n$ b. q. e例如对于平衡树,可能你跟着书本的代码实现之后,过阵子你就忘记,不过这不要紧,虽然你忘记了,但是如果你之前用代码实现过,理解过,那么当你再次看到的时候,会很快就记起来,很快就知道思路,而且你的抽象能力等等会在不知不觉中提升起来。之后再学习红黑树啊,什么数据结构啊,都会学的很快。
    # ^$ I( [# w8 r$ W% X* i+ a$ M( {. s3 O1 G! q/ Q8 f
    对于有哪些值得学习的算法,我之前也总结过,这里推荐给大家程序员必须掌握的核心算法有哪些?,这篇文章居然 40多万阅读量了,有点受宠若惊。
    6 }( X3 {  u* Z: X% H' g! z
    / y$ `8 v) _  g. t( S最最重要4 f% }9 I2 s3 P; U$ d
    # u: |' h' `% Y* K7 p7 G8 A) F
    动手去做,动手去做,动手去做。重要的话说三遍。
    $ A3 n, ]  R/ D6 D: t) x1 t( o4 l( V& ?& D9 u
    千万不要找了一堆资源,订好了学习计划,我要留到某某天就来去做…
    0 U- e7 }! ^9 U
    # a5 p% y- X7 L- i$ i千万不要这样,而是当你激情来的时候,就马上去干,千万不要留到某个放假日啊什么鬼了,很多这种想法的人,最后会啥也没做的。
    - Z/ v7 Y9 e1 o% y+ s' s$ L2 A
    # v6 z* z  e) G3 ?; U6 y7 v* F也不要觉得要学习的有好多啊,不知道从哪学习起。我上面说了,可以先学习最基本的,然后刷题,刷题是一个需要长期坚持的事情,一年,两年。在刷题的过程中,可以穿插和学习其他数据结构。
    & r! L7 f; v3 D9 h6 K1 O" O
    0 @; n  H) ]% G) N% m总结一下吧
    7 k7 D; M$ a' H) f; v! i. x6 L5 U! A! E; g: o
    所以我给大家的建议就是,先学习基本的数据结构以及算法思想,不要盲目刷题,接着刷题的过程中,不能得过且过,尽量追求最优解,还有就是要跳出舒适区,逼自己成长,刷题的过程中,要学会分类总结。/ s& B- w, o* G' X" X: F

    / O" S6 U9 g" ^( O. @. d$ U* a当然,最重要的,就是你去动手了,不然,一切免谈!
    - C$ \8 e2 u8 q) E; j6 n. U. i2 G. U
    看在熬夜写过的份上,送我个赞呗,嘻嘻。: z: c6 P( M4 r
    ————————————————
    8 v- _, j8 q/ X" `版权声明:本文为CSDN博主「帅地」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。& [* S# n, k. v/ x
    原文链接:https://blog.csdn.net/m0_37907797/article/details/104765116. r* y) j' y5 L2 R
    ! _1 B6 F$ c+ ], T/ ^9 S
    & u/ s0 Q8 X0 M
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-9-10 06:25 , Processed in 0.374810 second(s), 51 queries .

    回顶部