V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bcxx
V2EX  ›  问与答

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

  •  
  •   bcxx · 2012-06-02 20:53:35 +08:00 · 3259 次点击
    这是一个创建于 4563 天前的主题,其中的信息可能已经有所发展或是发生改变。
    /t/38161 里钓出了好多 OIers 啊……

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

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

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

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

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

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

    同学换了一波又一波 但是学OI时 认识的那些同学 至今仍保持联系 关系仍然非常好...
    虽然学OI让我荒废了高中 ...但是我还是不太后悔的.....
    jo32
        12
    jo32  
       2012-06-03 00:20:13 +08:00
    虽然一开始不知道 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  
       2012-06-03 00:23:57 +08:00
    @jo32 我还是觉得,如果你只是想享受创造的乐趣的话,这些东西不用急着学。等你有需求的时候(就像你这样的)再学也完全不晚。
    200
        14
    200  
       2012-06-03 00:26:05 +08:00
    没坚持下来,到了大学没有继续ACM了,现在回过头来看,感觉那段日子还是挺值得怀念的,虽然一直很菜,但是不得不承认确实学到了不少东西...

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

    撇开这两个问题不说,假设现在不搞 OI,可能以后系统地学习这方面的知识有可能不大可能了,因为学习 OI/ACM 是跟很多基础计算机学科是有联惯性的,而等你真正需要用到它的时候,这种连贯性可能已经断掉,你需要重新学习,就好像你现在要叫我平衡一颗二叉树我又要回去查书了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:42 · PVG 08:42 · LAX 16:42 · JFK 19:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.