bcxx
V2EX  ›  问与答

曾经(现在)是 OIer 的你现在还会选择 OI 吗?

  •  
  •   bcxx · Jun 2, 2012 · 3822 views
    This topic created in 5135 days ago, the information mentioned may be changed or developed.
    /t/38161 里钓出了好多 OIers 啊……

    不知道现在的你还会选择 OI 吗?
    15 replies    1970-01-01 08:00:00 +08:00
    kid7st
        1
    kid7st  
       Jun 2, 2012
    搞啊!不然高中太无聊!
    MayLava
        2
    MayLava  
       Jun 2, 2012
    ╮( ̄▽ ̄")╭ 当然。绝对不会后悔的。奖项再其次,重要的是能遇见一样爱好的人,交到好朋友。
    bcxx
        3
    bcxx  
    OP
       Jun 2, 2012
    我是广东的弱市的弱菜,3=的脚都摸不到 :/

    3年前也是糊里糊涂地去参加 OI 了。从会写一点代码到现在会几种语言……学了不少,也认识了好多朋友。

    不过唯一的副作用就是对学习影响很大啊,特别是我这种弱市的弱菜(你能想象老师都不会写代码、师弟学了半年都不会缩进的囧况么)

    如果让我重新选择,应该不会选择这条路吧。

    一下就3年过去了呢……
    bcxx
        4
    bcxx  
    OP
       Jun 2, 2012
    @MayLava 我想起 @fanzeyi 了 >3
    fanzeyi
        5
    fanzeyi  
       Jun 2, 2012
    @bcxx 我在想你是不是把 < 达成 > 了=。=
    fanzeyi
        6
    fanzeyi  
       Jun 2, 2012
    达成 -> 打成
    bcxx
        7
    bcxx  
    OP
       Jun 2, 2012
    @fanzeyi >3< <3 脑补,哈哈
    binux
        8
    binux  
       Jun 2, 2012
    无所谓选不选的,在有OI之前我们就在用文曲星写东西玩了。
    shiweifu
        9
    shiweifu  
       Jun 2, 2012
    学校弱到没有这OI的路过。。
    sethverlo
        10
    sethverlo  
       Jun 2, 2012
    我觉得,OI是做题,做web可能就是创造自己喜欢的东西。这完全不一样⋯⋯

    高中学OI我承认我只是为了保送(虽然没拿到)。所以现在就不考虑这样的东西了。
    txx
        11
    txx  
       Jun 2, 2012
    学OI么...OI虽说没学到啥东西....至今网络流 凸包之类的 依然不懂...
    但是接触到了 一帮真正志同道合的朋友...
    从初中开始 到现在...

    同学换了一波又一波 但是学OI时 认识的那些同学 至今仍保持联系 关系仍然非常好...
    虽然学OI让我荒废了高中 ...但是我还是不太后悔的.....
    jo32
        12
    jo32  
       Jun 3, 2012
    虽然一开始不知道 OI 是什么,刚才查了之后才发现。

    虽然没有搞过 OI,但是我却觉得搞好 OI 对编程有关的事情很有好处,然后我想说:搞 OI 的同志 keep going, it's well worthy.

    举个例子,之前在做网站的时候遇到了一个问题:网站中有 N 条条目,然后我给这 N 条条目根据用户偏好定义了一个偏序关系并排序了,我想把 N 条条目每次登录时候都推送给用户若干条,就像豆瓣做的一样,并不是只返回前几条,一个简单想法是按照在序列中的顺序定义一个概率函数 f(n) = y。这样的概率函数有很多,我选择了轮盘赌, 既 f(n) = n / ((1 + n) * n / 2)

    然后我们在选择一个的时候我是这样实现的:

    在 1 ~ (1 + n) * n / 2 生成一个随机数 y,然后求 (x + 1) * x / 2 = y 的根 x 然后取整,这个数就是按照轮盘赌概率选择出来的序列号。

    可以这样做的原因是因为:在 1 ~ (1 + n) * n / 2 中生成一个数必定落在某个区间 (k + 1) * k / 2 ~ (k + 2) * (k + 1) / 2 内,而落在这个区间的概率是 k / ((1 + n) * n / 2)。而易知 f(k) = (k + 1) * k / 2 是一条递增函数(高数中可以求导,高中生可以用两式相减),那么 (x + 1) * x / 2 = y (y 属于 [(k + 1) * k / 2 ~ (k + 2) * (k + 1) / 2]) 的根必落在 [k, k+1] 这个区间内。

    如果没有学好 OI 的话,或者没有任何数学知识,可能更会倾向生成一个随机数,然后写个循环判断在哪个区间内然后求 k。前后两者的复杂度分别为 O(1) 和 O(n),而两者是有区别的。

    我举这个例子的目的是为了说明:做 web 也好,做什么都好,要做得比较出色,肯定会遇到很多问题,但是这些问题往往可以形式化到常见的问题上面,很多问题实质上都是例如求最短路径诸如此类的。然而 OI 平时训练的的,就是训练如果形式化问题和如何处理形式化过后的问题。

    (好吧,我承认我将 OI 和 ACM 作对比了,虽然我也没搞过 ACM)
    sethverlo
        13
    sethverlo  
       Jun 3, 2012
    @jo32 我还是觉得,如果你只是想享受创造的乐趣的话,这些东西不用急着学。等你有需求的时候(就像你这样的)再学也完全不晚。
    200
        14
    200  
       Jun 3, 2012
    没坚持下来,到了大学没有继续ACM了,现在回过头来看,感觉那段日子还是挺值得怀念的,虽然一直很菜,但是不得不承认确实学到了不少东西...

    哎,好久没有回去看老师了,找机会一定回去好好聚聚~
    jo32
        15
    jo32  
       Jun 3, 2012   ❤️ 1
    @sethverlo 嗯,是的,这是一种方法论或者说一种偏好,在某些时候我也赞成。我觉得,问题是既然应不应该选择 OI,而不是 OI 与其他方面应该选择哪个。这两个问题是不同的问题,前者包含后者,因为后者多了一个限制条件:OI 与其他方面有冲突。但就我看来,就像我刚才说的,有一点是肯定的,OI 的确是有好处,好处甚至比你想象的要大。

    撇开这两个问题不说,假设现在不搞 OI,可能以后系统地学习这方面的知识有可能不大可能了,因为学习 OI/ACM 是跟很多基础计算机学科是有联惯性的,而等你真正需要用到它的时候,这种连贯性可能已经断掉,你需要重新学习,就好像你现在要叫我平衡一颗二叉树我又要回去查书了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   960 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 19:24 · PVG 03:24 · LAX 12:24 · JFK 15:24
    ♥ Do have faith in what you're doing.