美文网首页
有没有一段代码,让你觉得人类的智慧璀璨无比?

有没有一段代码,让你觉得人类的智慧璀璨无比?

作者: Androidgiao | 来源:发表于2019-11-27 20:41 被阅读0次

分享几个第一次看到就被它的优美深深震撼到的代码:

1、线性求逆元:

for (int i = 2; i < MAXN; i++)
    inv[i] = mul(inv[mod%i], mod - mod / i, mod);
复制代码

仅仅两行代码,就实现了在O(n)的时间内求出1到n对模m的逆元有木有!?

2、求最大公因数:

int gcd(int x, int y){return y ? gcd(y, x%y) : x;}
复制代码

第一次接触到这样的代码时,我的内心是这样的:

wtf???黑人问号.jpg

3、树状数组

对于单点修改区间求和,树状数组可谓达到了时空复杂度的极限,甚至不多用额外一字节存储空间。来看看它的实现:

修改:

void add(int i, int x){
    for (;i <= n; i += i & -i)tree[i] += x;
}
复制代码

查询:

int sum(int i){
    int ret = 0;
    for(; i; i -= i & -i)ret +=tree[i];
    return ret;
}
复制代码

表示记性不好的我看完一遍也记住了呢。

4、zkw线段树

对于单点修改区间查询的线段树,zkw大神实力教你如何1分钟内码出代码:

修改:

void set(int x, int value){
    val[x += treeLen] = value;
    while (x >>= 1)pushUp(x);
}
复制代码

查询:

int query(int l,int r){
    int ret = 0;
    for (l += treeLen - 1, r += treeLen +1; l ^ r ^ 1; l >>= 1, r >>= 1){
        if (~l & 1)ret = min(ret, val[l^1]);
        if (r & 1)ret = min(ret, val[r ^ 1]);
    }
    return ret;
}
复制代码

以上都是一些十分基础但真的让你赞不绝口的算法和数据结构。还有一些稍微复杂一些的栗子,由于手机码代码太不方便了,就以后再更吧。(如果有笔误打错的地方欢迎指正哈)

5、后缀数组的DC3算法,反正学完它的一瞬间我是明白了,天才和普通人的智商差距简直比人和狗还大啊。。。

6、快速傅里叶变换的数论版本(即NTT):学完后有种想去数学系的冲动(还好后来冷静下来了)。费马素数群的性质居然和复数完美吻合,不得不说是一种奇迹啊。

7、主席树:这是fotile巨佬考场上发明这种数据结构,用于在O(log n)的时间复杂度内解决序列区间第k大问题,以及区间内元素的排名。个人感觉他比划分树的设计巧妙多了,有一种自然的美感。

8、Pollard因数分解算法:如果你真的把关于时间复杂度的证明一步步看完后,相信你会有一种豁然开朗的感觉。这个算法真正高的地方在于把生日悖论和递推式循环节巧妙的结合在一起,最后运用递推方程主定理的理论,使得时间复杂度达到了看似不可能的期望n^0.25的数量级。

其实现在感觉一切和数据结构或数学有关的算法都是非常优美的,前者在于设计的精巧性,后者在于证明的环环相扣,达到引人入胜的效果。

[图片上传失败...(image-e02dfd-1574858434160)]

相关文章

  • 有没有一段代码,让你觉得人类的智慧璀璨无比?

    分享几个第一次看到就被它的优美深深震撼到的代码: 1、线性求逆元: 仅仅两行代码,就实现了在的时间内求出1到n对模...

  • 有没有一段代码,让你觉得人类的智慧也可以璀璨无比?

    Kyle McCormick 在 StackExchange 上发起了一个叫做Tweetable Mathemat...

  • 终结

    地球上,无比智慧的人类创造出无比璀璨的文明,那个时代是人类有史以来最繁荣的时期,让每个人感到惊叹。但那巅峰...

  • 拈一抹温柔送你

    有没有一段记忆,让你回忆起来轻松快乐,笑意满满?有没有一段时光,让你觉得青山绿水,海阔天空?有没有这样一段感情,或...

  • 一切正好

    你喜欢的人,恰巧也正喜欢洁白的云朵缠绕云朵交织出焰火,让西青海的湖水无比璀璨岸边站立着青草鼓掌于一段秋天,爱情的宣...

  • 你要成为自己的那道光

    这世界,有没有这样一个人,只要他在你身边,你就觉得无比安心!也或许,你就是那个让别人觉得安心的人。但我们,应该让自...

  • 科技星光永不灭! ——读《科技之星 · 这才是我们应该追的星》有

    夏夜的星空无比璀璨——你或许会说,夜空总是黑暗的,怎么可以称得上“璀璨”呢?...

  • 感恩生活的赠予

    有没有一个时刻,让你觉得生活无比美好,又无比温暖呢? 之于我而言,有很多时候是被琐碎的生活牵绊着,失去了很多去感受...

  • 关于保住性命这事,认真且怂

    有没有觉得疫情来临之际,生命无比脆弱? 有没有觉得水火无情之时,生命无比珍贵? 从前从未觉得活着是件有意思的事情,...

  • 观自在

    观自在:现在宇宙能量正在继续升级,更多的人类正在打开他们的智慧,打开了智慧的人类会无比兴奋,也有似懂非懂的跟风者。...

网友评论

      本文标题:有没有一段代码,让你觉得人类的智慧璀璨无比?

      本文链接:https://www.haomeiwen.com/subject/icumwctx.html