
Algorithm Study
文章平均质量分 72
spongewxy
这个作者很懒,什么都没留下…
展开
-
经典位操作
最近看了一篇文章>感觉不错,适当的做一下笔记。原文地址:http://graphics.stanford.edu/~seander/bithacks.html#OperationCounting1、Compute the sign of an integer // we want to find the sign of v int v; // the re转载 2015-06-18 09:45:37 · 1017 阅读 · 0 评论 -
《Hamiltonian Cycle》题目分析
题意分析给定一个有向图,求图中哈密顿回路的数量。算法分析哈密顿回路,具体到本题中即从某一个点开始经过所有的点一次后再回到该点的不同路径数。对于这个不同需要注意两点:如果我们将路径经过的点按顺序写下,比如当n=3时,若存在123和231。此时,我们认为这两条路径是同一条哈密顿回路。而123和213则是不同的哈密顿回路。若两个点之间有多条边,经过不同的边的路转载 2015-09-16 15:45:54 · 983 阅读 · 0 评论 -
Fleury(弗罗莱)算法求欧拉路径
上面是摘自图论书上的定义。算法在运行过程中删除了所有已走的路径,也就是说途中残留了所有没有行走的边。根据割边的定义,如果在搜索过程中遇到割边意味着当前的搜索路径需要改进,即提前输出某一个联通子集的访问序列,这样就能够保证访问完其中联通子图中后再通过割边访问后一个联通子图,最后再沿原路输出一开始到达该点的路径。如果只有割边可以扩展的话,只需要考虑先输出割边的另一部分联通子集访问序列。转载 2015-09-16 15:44:42 · 858 阅读 · 0 评论 -
Codeforces 484A Bits
Let's denote as the number of bits set ('1' bits) in the binary representation of the non-negative integer x.You are given multiple queries consisting of pairs of integers l and r. For each q原创 2015-08-26 16:44:30 · 483 阅读 · 0 评论 -
1153 选择子序列
长度为N的整数数组A,所有的数均不相同,假设下标从0开始。找到一个最长的数组B,B数组的长度为K,数值范围是0 - N - 1,记录的是A数组的下标。满足A[B[0]] > A[B[1]] > A[B[2]] >...A[B[K]],并且对任意连续的两项B[i]及B[i + 1],满足min(B[i],B[i + 1]) < j < max(B[i],B[i + 1]) 均有A[j]原创 2015-07-07 19:00:46 · 797 阅读 · 0 评论 -
牛顿迭代法
目前接触到的牛顿迭代法主要应用于两个方面:(1)方程求根问题(2)最优化问题。1、求解方程。并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x) = f(x0)+(x-x0)f'(x0)求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=原创 2015-07-07 10:40:49 · 5579 阅读 · 0 评论 -
组合数取模
复习了一下组合数取模,当然推荐查看ACDreamer的博客啦,写的确实好啦,自己把里面的题目全A掉了。原文地址:http://blog.youkuaiyun.com/acdreamers/article/details/8037918http://acm.fzu.edu.cn/problem.php?pid=2020#include #include #include #转载 2015-07-03 15:29:57 · 443 阅读 · 0 评论 -
三次方格取数
多线程DP。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;/* 多线程的dp:按照对角线来原创 2015-06-12 20:34:07 · 392 阅读 · 0 评论 -
求两个有序数组的中位数-算法导论
QuestionThere are 2 sorted arrays A and B of size n each. Write an algorithm to find the median of the array obtained after merging the above 2 arrays(i.e. array of length 2n). The complexity shou转载 2015-05-25 11:19:07 · 1164 阅读 · 0 评论 -
循环赛日程表问题
相信循环日程表问题大家都不陌生,我们很容易想到一个分治的方法来求解此问题,今天碰巧遇到了一种非递归的解法,mark一下,该解法是利用多边形来进行求解的,具体的求解过程参照此博客:http://blog.youkuaiyun.com/yuanyirui/article/details/3891359,他在解决8人的循环日程表的时候采用的是七边形,我在图上画了一下我们完全可以在参加循环赛的人数为n时利用n边形的求原创 2015-06-30 12:11:25 · 440 阅读 · 0 评论 -
斐波那契博弈(Fibonacci Nim)
本文出自: http://blog.youkuaiyun.com/dgq8211/article/details/7602807有一堆个数为n(n>=2)的石子,游戏双方轮流取石子,规则如下:1)先手不能在第一次把所有的石子取完,至少取1颗;2)之后每次可以取的石子数至少为1,至多为对手刚取的石子数的2倍。约定取走最后一个石子的人为赢家,求必败态。结论:当n转载 2015-06-26 15:14:23 · 486 阅读 · 0 评论 -
根据两点的经纬度求方位角和距离,等
最近自己做的一个小东西要用到经纬度方面的计算,查遍中文网页见到的要么基本上是一帮惜字如金装大爷的“砖家”,要么就是像贴膏药一样,啪,一大堆代码往上一贴,一点说明都没有,让人看不懂,有的看了半天看懂了,结果他用的公式要么有使用局限(但没有半点声明)要么根本就是个错的。所以现在将自己几天学习来的在这里总结一下,方便后来人少走弯路。这里主要解决四个问题:1、已知两点经纬度,求一点相对于另转载 2015-06-03 16:17:29 · 3273 阅读 · 2 评论 -
石子合并问题
石子合并问题是最经典的DP问题。首先它有如下3种题型:(1)有N堆石子,现要将石子有序的合并成一堆,规定如下:每次只能移动任意的2堆石子合并,合并花费为新合成的一堆石子的数量。求将这N堆石子合并成一堆的总花费最小(或最大)。分析:当然这种情况是最简单的情况,合并的是任意两堆,直接贪心即可,每次选择最小的两堆合并。本问题实际上就是哈夫曼的变形。转载 2015-06-01 22:02:17 · 483 阅读 · 0 评论 -
位运算总结
总结一些简单的位运算的操作并利用位运算来解决一些问题,注意: &, |, ^在进行位运算时是将操作数的符号位也考虑在内的。求解整数的绝对值int abs(int a) { return (a ^ (a>>31)) - (a>>31);}求两个数的最大值int max(int a, int b) { return (b&((a-b)>>31)) | (a&(~(a-b)>>3原创 2016-07-25 23:09:45 · 713 阅读 · 0 评论