zoukankan      html  css  js  c++  java
  • 经典问题的非经典解法

    经典问题的非经典解法

    N皇后问题 主要来源:Matrix67

    这是一道行列式计算的经典例题,历史悠久,喜闻乐见。

    一个十分简单的,并且没有多少限制的是镜像优化,可以减少一半的搜索量,我记得没错USACO那道朴素算法再加这个优化就能A了。然后就有不少神牛提出了许多高深的优化方法。比如最后一个直接确定,无需再搜。比如链表,减少了对无用位置的检查,只是删除和还原时比较烦。【我会告诉其实我至今不会链表吗】比如改为非递归,但是代码量。。。不敢恭维。

    非经典解法之位运算

    我们可以记录三个状态S1,S2,S3 表示当前每行中、两条对角线上哪些位置分别被

    占。然后位运算牛就牛在我们可以O(1)算出某个数最右边的1 在哪里,这样我们再

    经过简单的转移就可以得到理想的效果。位运算将枚举可行位置优化到了极致!常数

    小,代码短,而且可以推广,乃居家旅行之必备!

    http://www.matrix67.com/blog/archives/266

    矩阵取和问题 主要来源:原创

    每行每列只取一个数,使得和最大。

    搜索优化?状态压缩?No.no,no! This is a very water problem.

    非经典解法之网络流

    行列分别为二分图两侧A,B,Ax向By连一条容量为1,费用为a[x][y]的边。用zkw/SPFA流解之。

    全局最小割统计(ZJOI2011D1P3) 主要来源:iomaster

    图中有多少对点它们的最小割的容量不超过x。

    这是一道网络流的经典例题,历史悠久,喜闻乐见。

    枚举S和T,每次都跑一边最大流。TLE!

    非经典解法之分治优化

    http://hi.baidu.com/oimaster/item/44de2eda7eb2b34bddf9be96

    RMQ问题 主要来源:百度百科

    长度为N的序列,有Q个询问(x,y),询问x-y中的最小值。

    这是一道考察数据结构的经典例题,历史悠久,喜闻乐见。

    线段树?倍增算法?

    非经典解法之线性算法

    根据原数列建一颗笛卡尔树,然后询问变为树上的LCA问题。

    而树上的LCA问题有两种线性或接近线性的算法。

    Tarjan算法 离线O(N+Qα(N))

    约束RMQ(± 1RMQ)(算法 O(N)-O(1)在线

    http://baike.baidu.com/view/1536346.htm

    石子合并问题 主要来源:fanhq666

    一排石子,每次合并相邻的两堆石子,代价为这两堆石子的重量和,把一排石子合并为一堆,求最小代价。

    这是一道DP的经典例题,历史悠久,喜闻乐见。

    这不O(N^3)暴力么?等等,还可以利用四边形不等式优化到O(N^2)。水题啊。。。。【我会告诉你我O(N^2)不会么】

    围观数据:N<=50000。

    这。。。心碎了把。。。

    非经典解法之GarsiaWachs算法

    http://fanhq666.blog.163.com/blog/static/81943426201062865551410/

    高斯消元问题 (「Clover」杯VII P3)主要来源:thispoet

    这是一道行列式计算的经典例题,历史悠久,喜闻乐见。

    线性方程组求整数解

    高斯消元?告诉数据都是10^60的!

    哈哈!不会把?什么。。高精度?那你会去写高精度除法么?什么?可以不用除法。嗯,参考辗转相除法,可以求两项的LCM来方便消元。但是。。。高精度加减乘GCD。。。

    告诉你这是一道NOIP题。

    非经典解法之线性模方程组

    http://thispoet.blogcn.com/articles/tyvj-clover7-solution.html

    约瑟夫问题 主要来源:AekdyCoin

    这是一道模拟的经典例题,历史悠久,喜闻乐见。

    给定N,k,输出最后一个编号i。

    还记得当年O(NK)的朴素算法是自己写出来的么?

    然后现在呢?平衡树维护?O(NlogN)

    对这个问题感兴趣的同学肯定知道一个简单公式的O(N)算法。【我会告诉你我不会证么】

    然后,就没有然后了?

    要拓展一下嘛。给定N,i,求最小的K。

    哈哈,只会O(NK)?

    不慌,AekdyCoin数论神来教你。

    非经典解法之线性模方程组

    http://hi.baidu.com/aekdycoin/item/759825737c31f840ef1e53ac

  • 相关阅读:
    leetcode 131. Palindrome Partitioning
    leetcode 526. Beautiful Arrangement
    poj 1852 Ants
    leetcode 1219. Path with Maximum Gold
    leetcode 66. Plus One
    leetcode 43. Multiply Strings
    pytorch中torch.narrow()函数
    pytorch中的torch.repeat()函数与numpy.tile()
    leetcode 1051. Height Checker
    leetcode 561. Array Partition I
  • 原文地址:https://www.cnblogs.com/oldmanren/p/2734536.html
Copyright © 2011-2022 走看看