资料
文章平均质量分 81
luyuncheng
luyuncheng@sina.com
展开
-
glibc的几个有用的处理二进制位的内置函数
— Built-in Function: int __builtin_ffs (unsigned int x)Returns one plus the index of the least significant 1-bit of x, or if x is zero, returns zero.返回右起第一个‘1’的位置。— Built-in Function: int转载 2013-09-14 10:33:13 · 3297 阅读 · 0 评论 -
c++math函数
abs fabs cabs ceil sin cos tan asin acos atan atan2 sinh cosh tanh exp floor fmod frexp log log10 modf pow sqrt hypot poly matherr ldexp 函数名称:原创 2013-01-16 18:55:01 · 7180 阅读 · 0 评论 -
java.math 包应用
java.math 包应用java.math包应用java.math.Math类常用的常量和方法:Math.PI 记录的圆周率Math.E记录e的常量Math.abs 求绝对值Math.sin 正弦函数 Math.asin 反正弦函数Math.cos 余弦函数 Math.acos 反余弦函数Math.tan 正切函数 Math.atan 反正切函数 原创 2013-01-16 18:49:52 · 1145 阅读 · 1 评论 -
《算法竞赛入门经典——训练指南》第一章相关内容
#《算法竞赛入门经典——训练指南》第一章相关内容希望各位大牛能指导!红色为已经做了的。。。黄色背景是还有不懂地方,希望在年前能刷完第一章啊。。。。更新版。google上貌似又加了extra 然后分类更仔细了。所以我重新弄了下勘误[第二次印刷改正]P34. 最后一行,“k是叶子和服务器的距离下限”应改为“k是叶子和服务器的距 离上限”P49. 最下方的括号中,“本题中所有原创 2012-11-20 17:40:43 · 4065 阅读 · 4 评论 -
一些几何学的东西
http://www.csie.ntnu.edu.tw/~u91029/PointLinePlane2.htmlSweep Line程度★ 難度★★Sweep Line「掃描線」是計算幾何領域的基礎手法,可以用來解決許多計算幾何的問題,有如圖論中的 BFS 與 DFS 一樣經典。它並不是一個物品,而是一個概念。平移的掃描線一條(或兩條)無限長平行線,沿其垂直转载 2013-01-24 00:52:27 · 876 阅读 · 0 评论 -
各种hash哈希
据说,Hash的优劣顺序为:BKDRHash, APHash, DJBHash, JSHash, RSHash, SDBMHash, PJWHash, ELFHash。应该是从速度区分吧。因为BKDRHash最快(据说也最好背),ELFHash最准确(冲突率最低)。unsigned int SDBMHash( char *str) { unsigned原创 2012-11-19 21:33:14 · 1088 阅读 · 0 评论 -
strtok
注:strtok可以指定多个断开符,如:char seps[] = " ,\t\n";strtok指定的字符串可以为常量,如 string::c_str()string string1 = "A string\tof ,,tokens\nand some more tokens";char seps[] = " ,\t\n";char *token;int m原创 2012-11-17 22:28:51 · 691 阅读 · 0 评论 -
vector的查找
stl包括容器、迭代器和算法:容器 用于管理一些相关的数据类型。每种容器都有它的优缺点,不同的容器反映出程序设计的不同需求。容器自身可能由数组或链表实现,或者容器中的每个元素都有特殊的关键值。迭代器 用于遍历一个数据集中的每个元素。这些数据集可能是容器或者容器的子集。迭代器的主要优点是它们为任意类型的容器提供一个小巧并且通用(注意通用很重要)的接口。例如,迭代器接口的一个操作是让它依次遍历原创 2012-11-17 22:28:26 · 542 阅读 · 0 评论 -
常用函数 c++
常用函数 1. 常用C++函数intscanf("%[*][width][modifiers]type",type_name);scanf("%2X",&num);//读取两位16进制数scanf("%*d%d",&num);//加*读跳过该读取值赋值scanf("%[a-zA-Z]",str);//遇到非a-zA-Z之间的字符时结束输入scanf原创 2012-11-07 13:49:45 · 2079 阅读 · 0 评论 -
《算法竞赛入门经典——训练指南》第二章相关内容
#《算法竞赛入门经典——训练指南》第二章相关内容由于动态规划的高阶比较难,所以伴随这数论一起刷红色为做了黄色不懂的 希望各位大牛能帮帮小弟勘误P112.例题4,LA3516的图画错了,请参考原题:https://icpcarchive.ecs.baylor.edu/external/35/3516.html[第二次印刷改正]p180.表2-8 第一行信息有误,应为:原创 2013-01-04 20:54:21 · 3489 阅读 · 4 评论 -
vector 在c++中resize 和reserve的区别
一、 resize和reservehttp://www.diybl.com/course/3_program/c/c_js/2007109/77298.html resize就是重新分配大小,reserve就是预留一定的空间。这两个接口即存在差别,也有共同点。下面就它们的细节进行分析。 为实现resize的语义,resize接口做了两个保证:转载 2013-02-20 23:07:37 · 1132 阅读 · 0 评论 -
RMQ与LCA
Range Minimum Query and Lowest Common Ancestor【原文见 http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor】http://www.cnblogs.com/drizzlecrj/archive/2007/10/23/933472.html转载 2013-02-21 00:17:44 · 471 阅读 · 0 评论 -
A bit of fun: fun with bits
A bit of fun: fun with bitshttp://www.cnblogs.com/drizzlecrj/archive/2007/03/13/672576.html 【原文见:http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=bi转载 2013-04-25 00:39:03 · 670 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
C++拷贝构造函数(深拷贝,浅拷贝)http://www.cnblogs.com/BlueTzar/articles/1223313.html对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #incl转载 2013-04-17 02:07:16 · 504 阅读 · 0 评论 -
计算一个 32 位无符号整数有多少个位为 1
http://blog.csdn.net/rappy/article/details/1788969引用:Counting out the bits 可以很容易的判断一个数是不是2的幂次:清除最低的1位(见上面)并且检查结果是不是0.尽管如此,有的时候需要直到有多少个被设置了,这就相对有点难度了。 GCC有一个叫做__builtin_popcount转载 2013-04-25 00:39:48 · 1079 阅读 · 0 评论 -
Win32 环境下的堆栈
Win32 环境下的堆栈选择自 slimak 的 Blog Win32 环境下的堆栈(一)简介在Win32环境下利用调试器调试应用程序的时候经常要和堆栈(Stack)打交道,尤其是在需要手工遍历堆栈(Manually Walking Stack)的时候我们需要对堆栈的工作过程有一个比较清晰的了解.接下来的这些文字将通过一个例子程序详细的讲解堆栈的工作过程转载 2013-04-07 21:36:29 · 967 阅读 · 0 评论 -
3xian @ GDUT 退役贴
[ZZ]3xian @ GDUT 退役贴发信人: evilin (iSea), 信区: ACM_ICPC 标 题: 3xian @ GDUT 退役贴 发信站: 珞珈山水 (Sun Jul 18 22:20:402010), 站内 最后一天,漫天飘起了雪花,假装欢 送我离去。 这次WF之战不太顺利,早期的C题大概花了1秒钟构思,然而由于输出格式多了一个空格直到两个半小时才转载 2013-03-11 22:45:27 · 973 阅读 · 0 评论 -
bind1st/bingd2st用法
bind2nd和bind1nd的用法struct printx: public binary_function{ int operator()(int a, int b)const { cout return a+b; }}; int main(){ vector my; my.push_back(0);原创 2013-03-11 15:08:33 · 1255 阅读 · 0 评论 -
c++ transform 用法
/*////////////////////////////////template OutputIterator transform ( InputIterator first1, // 源容器的起始地址 InputIterator last1, // 源容器的终止地址 OutputIterator result, // 目标容器的起始地址 Un原创 2013-03-11 14:12:38 · 9183 阅读 · 0 评论 -
lca转rmq
LCA(a,b)转RMQ就是把从节点a到节点b的这条路径记下来(用dfs访问变成一维数组),然后求这条路径上面深度值最小的那个节点,这个节点的编号就是所求的LCA。至于为什么说深度最小的这个节点为所求是因为深度最小这个节点当然在这条路径的最上面,故为所求转载+修改一、最近公共祖先(Least Common Ancestors)对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v转载 2013-02-25 00:09:29 · 382 阅读 · 0 评论 -
unique和unique_copy函数的应用
unique函数的功能是:去除相邻的重复元素(只保留一个)。函数参数:unique(first,last,compare);//first为容器的首迭代器,last为容器的末迭代器,compare为比较函数(可略写)。注意:unique函数也并非是真正的删除了元素,一般要与erase成员函数 或resize成员函数互相配合使用。具体可参见博文:http://blog.sina.com.cn原创 2012-11-07 11:42:08 · 485 阅读 · 0 评论 -
lower_bound 返回值
函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标则pos = lower_bound( number, number + 8,原创 2012-11-06 20:05:07 · 696 阅读 · 0 评论 -
高斯消元+枚举自由变量
/*高斯消元+枚举自由变量 */ #include#include#includeusing namespace std;int T , N ,M ;int num[110] ;int a[110][110] ;int row , col ;int ans[110] ;int temp[110] ;int res ;void dfs(int u){ if(u ==原创 2012-09-13 19:45:00 · 2236 阅读 · 0 评论 -
佩尔方程 连分数法
http://blog.sina.com.cn/s/blog_5d06e2390100ll92.html佩尔方程实际上并不是佩尔提出的,而是费尔马提出,却被欧拉误记为佩尔提出,因此佩尔方程的名称沿用至今。身为不定方程的特殊一类,佩尔方程与连分数,二次型,代数论等等有着重要的联系,因而是数论中最经典的篇章之一。令d 为非平方数的正整数,那么佩尔方程(Pell Equation)为:转载 2012-09-29 18:21:31 · 3373 阅读 · 0 评论 -
同余问题的理解
http://hi.baidu.com/sunhaowenprime/item/5626e3e69858afaec10d7522哎呀,经过这两三天的奋斗,终于搞懂了一类问题——用扩展欧几里德算法求解线性同余方程。其实这类问题应该是比较基础也比较简单的,但我由于几乎没有一点数论的基础,所以还是难为了我不久,等现在彻底搞明白以后再看真的觉得是挺简单的,有关这类问题的题目也不是很多,我就做了3个。下转载 2012-09-29 17:40:14 · 1023 阅读 · 0 评论 -
树状数组题目
先提个注意点,由于Lowbit(0) = 0,这会导致x递增的那条路径发生死循环,所有当树状数组中可能出现0时,我们都全部加一,这样可以避免0带来的麻烦~~ 简单: POJ 2299 Ultra-QuickSort http://acm.pku.edu.cn/JudgeOnline/problem?id=2299 求逆序数,可以用经典的归原创 2012-09-24 20:39:16 · 497 阅读 · 0 评论 -
C++ MAP 容器用法 STL
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有原创 2012-09-10 14:53:24 · 836 阅读 · 0 评论 -
lower_bound()返回值
http://blog.csdn.net/niushuai666/article/details/6734403函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置举例如下:一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,11转载 2012-09-26 11:33:23 · 484 阅读 · 0 评论 -
各个OJ网络流 题集分布
【HDU】1532Drainage Ditches(基础) [最大流]3549 Flow Problem(基础) [最大流]3572 Task Schedule [最大流]任务分配,判断满流2732 Leapin' Lizards(难) [最大流]3338 Kakuro Extension [最大流][数和]神奇最大流行进列出2883 keba转载 2012-09-04 20:48:48 · 4086 阅读 · 0 评论 -
sap算法详解与模板 [转]
sap算法详解与模板 [转]链接:1. Maximum Flow: Augmenting Path Algorithms Comparison http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=maxFlowRevisited2. 刘汝佳《算法艺术与信息学竞赛》 P321 ( 注: 上面转载 2012-08-25 20:54:06 · 668 阅读 · 0 评论 -
旋转卡壳
http://cgm.cs.mcgill.ca/~orm/rotcal.frame.html旋转卡壳一些历史:1978年, M.I. Shamos's Ph.D.的论文"Computational Geometry"标志着计算机科学的这一领域的诞生。 当时他发表成果的是一个寻找凸多边形直径的一个非常简单的算法, 即根据多边形的一对点距离的最大值来确定。后来直径演化为由一对对踵点原创 2012-10-06 11:48:03 · 1207 阅读 · 0 评论 -
国家集训队论文集 ACM
国家集训队1999论文集陈宏:《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》来煜坤:《把握本质,灵活运用——动态规划的深入探讨》齐鑫:《搜索方法中的剪枝优化》邵铮:《数学模型的建立、比较和应用》石润婷:《隐蔽化、多维化、开放化——论当今信息学竞赛中数学建模的灵活性》杨帆:《准确性、全面性、美观性——测试数据设计中的三要素》周咏基:《论随机化算法的原创 2012-09-03 16:48:52 · 1584 阅读 · 0 评论 -
快速幂乘
int pow3(int x, int n){ intresult = 1; while(n > 0) { if(n & 1) // n & 1 等价于 (n % 2) == 1 result *= x; x*= x; n>>= 1; // n >>= 1 等价于 n原创 2012-10-07 16:42:00 · 469 阅读 · 0 评论 -
uva难度分级列表
#IDTitleSolved byDifficulty1100The 3n + 1 problem2648512102Ecological Bin Packing106082310071Back to High School Physics95543410055Hashmat t原创 2012-10-31 13:02:15 · 10699 阅读 · 1 评论 -
七种qsort排序方法
注意:可以的话最好还是自己写qsort( )而不是调用stdlib.h里的qsort()函数,那样效率会高很多的七种qsort排序方法 一、对int类型数组排序 int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b;转载 2012-09-24 20:42:56 · 459 阅读 · 0 评论 -
置换 置换群 应用 +置换群对某些算法问题的解释
置换 置换群 应用http://hi.baidu.com/foreverlin1204/item/5bafa5e7e95629acc10d758bhttp://blog.163.com/myq_952/blog/static/863906320110211731329/置换的概念是什么?一个有限集合的一一变换叫做置换,一对对置换组成了置换群。对于一个集合a(a[1],a[2],转载 2012-09-20 21:29:15 · 5210 阅读 · 0 评论 -
中国剩余定理
中国剩余定理http://hi.baidu.com/nicker2010/item/91a91fd14133073b2a35c7ed问题:今有物不知其数,三三数之有二,五五数之有三,七七数之有二,问物有多少?数学表达式如下,求x。x mod 3=2x mod 5=3x mod 7=2 定理1: 设m1,m2,…mk是两两互素的正整数,则对任意b1,b2,…,转载 2012-09-20 16:29:14 · 1013 阅读 · 0 评论 -
ACM 计算几何题目推荐
一。基础题目 1.1 有固定算法的题目 A, 最近点对问题最近点对问题的算法基于扫描线算法。ZOJ 2107 Quoit Design 典型最近点对问题POJ 3714 Raid 变种最近点对问题B,最小包围圆最小包围圆的算法是一种增量算法,期望是O(n)。ZOJ 1450 Minimal Circle转载 2012-10-10 16:28:47 · 576 阅读 · 0 评论 -
字符串分割(C++)
http://www.cnblogs.com/MikeZhang/archive/2012/03/24/MySplitFunCPP.html经常碰到字符串分割的问题,这里总结下,也方便我以后使用。一、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要原创 2012-10-10 10:26:47 · 535 阅读 · 0 评论 -
树状数组资料
http://dongxicheng.org/structure/binary_indexed_tree/1、概述树状数组(binary indexed tree),是一种设计新颖的数组结构,它能够高效地获取数组中连续n个数的和。概括说,树状数组通常用于解决以下问题:数组{a}中的元素可能不断地被修改,怎样才能快速地获取连续几个数的和?2、树状数组基本操作传统数组(共n个元素)的元转载 2012-09-18 20:33:33 · 525 阅读 · 0 评论