您的位置:首页 > 其它

经典问题的非经典解法

2012-10-22 21:09 169 查看
经典问题的非经典解法

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: