
资料
fanlinqiang
这个作者很懒,什么都没留下…
展开
-
三分法(Ternary Search)求解凸(凹)函数的极值问题<方法篇>
本文来自:http://blog.youkuaiyun.com/rabia/article/details/7826144二分法作为分治中最常见的方法,在各种比赛中经常出现(如:POJ 1434),但只适用于单调函数,若遇到凸(凹)函数求解极值,可采取三分的方法求解。凸(凹)函数在高数中的定义是:若函数的二阶导数在区间上恒大于0,则该函数在区间为凸函数;反之,小于0为凹函数。在比赛中面对一个问题而推出的求转载 2012-08-03 15:07:03 · 1080 阅读 · 0 评论 -
数论——拆分数++母函数模版
首先,我们引进一个小小概念来方便描述吧,record[n][m]是把自然数划分成所有元素不大于m的分法,例如:当n=4,m=1时,要求所有的元素都比m小,所以划分法只有1种:{1,1,1,1};当n=4,m=2时,。。。。。。。。。。。。。。。。只有3种{1,1,1,1},{2,1,1},{2,2};当n=4,m=3时,。。。。。。。。。。。。。。。。只有4种{1,1,1,转载 2012-11-10 18:13:13 · 875 阅读 · 0 评论 -
笔记1
1>输入e2 e4 while(scanf("%c%d %c%d%c",&x1,&y1,&x2,&y2,&xn)!=EOF) while(scanf("%c %d %c %d",&Y1,&X1,&Y2,&X2) != EOF) while(scanf("%c%c%c%c%c%*c,&x1,&y1,&space,&x2,&y2)!=EOF)2>输入原创 2012-08-09 18:02:06 · 640 阅读 · 1 评论 -
三种简单博弈问题的简单介绍
三种简单博弈问题的简单介绍 本文来自:http://www.cppblog.com/klion/archive/2010/08/25/124698.aspx另附参考:http://blog.sina.com.cn/s/blog_892d87ff0100tuek.html下面我们以一种游戏的方式来引进三种基本的博弈问题。一.巴什博奕(Bash Game):首先我们转载 2012-08-01 18:22:53 · 988 阅读 · 0 评论 -
二分图的最大匹配
二分图的最大匹配http://xcoder.in/blog/2012/07/maximum-matching-of-bipartite-graph.xhtml1. 基础概念1.1.什么是二分图首先,我们得知道什么是二分图。关于二分图的说法网络上各种术语阐释。这里我做一个通俗的说法:一个图分两个集合,左边集合和右边集合。左边集合的节点互不连通,右边集合的节点也互不连通转载 2012-11-23 20:20:36 · 646 阅读 · 0 评论 -
快速幂取模和快速取模
基本概念及思想对形如a^b mod m 的运算(b一般较大)但a,b,m都在long型范围内算法的主要思想是分治,分而治之。将大的问题分成若干个相似的较小的问题!具体实现是用递归的方法!举例2^100 mod 3像这种运算如果先算出2^100 的值,然后再模上3,相信比较困难!我们可以将100变小点2^100=(2^50)^2 =((2^25)^2)转载 2012-11-15 15:00:01 · 1832 阅读 · 0 评论 -
c++字符串操作
来自:http://www.cnblogs.com/chuncn/archive/2009/02/13/1390176.html之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+转载 2012-11-17 09:03:34 · 567 阅读 · 0 评论 -
c++字符小知识
1>string s="abc" 比较方式== char c[10]="abc" 比较方式strcmp(c,“abc”) gets()必须吃掉前面的换行原创 2012-11-17 09:31:31 · 359 阅读 · 0 评论 -
数论中的一些公式(转)
以下等式或者不等式均可以用数学归纳法予以证明!1 + 3 + 5 + ... + (2n - 1) = n^21*2 + 2*3 + 3*4 + ... + n*(n + 1) = n*(n + 1)*(n + 2) / 31*1! + 2*2! + 3*3! + ... + n*n! = (n + 1)! - 11^2 + 2^2 + 3^2 + ... + n^2 = n*(n转载 2012-11-18 15:01:38 · 521 阅读 · 0 评论 -
数组自定义排序
#include#include#include#includestruct node{ int soc,kn; friend bool operator < (const node &a,const node &b)//友元对运算符<的重载 { if(a.soc==b.soc) return a.kn<a.kn;原创 2012-12-03 20:12:23 · 692 阅读 · 0 评论 -
数论小知识
判断一个数是否为奇数 #includeusing namespace std;int main(){ if(3&1)cout<<"yes1"<<endl; if(4&1)cout<<"yes2"<<endl; return 0;}求两个数的最大公约数int gcd(int a,int b){ if(b==0) return原创 2012-11-15 15:19:57 · 486 阅读 · 0 评论 -
c++中字符串转成数字、数字转成字符串
字符串转成数字#include#includeusing namespace std;int main(){string str("1234");const char *p;int n;p = str.c_str();//返回c字符串n = atoi(p);cout << n << endl;return 0;}数字转成字符串#转载 2012-11-23 19:43:31 · 593 阅读 · 0 评论 -
nim游戏/sg函数(博弈论)
Nim游戏 Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(以下简称ICG)。满足以下条件的游戏是ICG(可能不太严谨):1、有两名选手;2、两名选手交替对游戏进行移动(move),每次一步,选手可以在(转载 2012-11-23 21:40:16 · 550 阅读 · 0 评论 -
博弈问题及SG值
博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候。)Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim游戏是组合游戏(Comb转载 2012-11-25 15:46:47 · 3347 阅读 · 0 评论 -
c++中vector的用法
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.用法:1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vector还有一定要加上using namespace std;2.变量声明:2.1 例:声明一个int向量以替代一转载 2012-11-25 19:24:33 · 647 阅读 · 0 评论 -
哈夫曼编码简介
哈弗曼编码几乎是所有压缩算法的基础,其实这个算法并不复杂,简单的理解就是,如何用更短的bit来编码数据。我们知道普通的编码都是定长的,比如常用的ASCII编码,每个字符都是8个bit:字符编码A00101001B00101010C00101011……这样,计算机就能很方便的把由0和1组成的数据流转载 2012-10-19 20:24:32 · 783 阅读 · 0 评论 -
ASCII码对照表
本页来自:http://ascii.911cha.com/ 登入页面可获得更多查询 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。 ASCII转载 2012-08-04 15:06:09 · 585 阅读 · 0 评论 -
背包问题总结(0-1背包+完全背包+多重背包)
0-1 背包有N件物品和一个容量为m的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。特点:每种物品仅有一件,可以选择放或不放。void ZeroOnePack(int cost, int weight) { for (int i = m; i >= cost; i--) dp[i] = max(dp[i], dp[i-转载 2012-08-10 11:05:22 · 860 阅读 · 0 评论 -
getchar、gets、puts 详解
getchar 函数名: getchar 功 能: 从stdin流中读字符 用 法: int getchar(void); 注解: getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getch转载 2012-08-11 19:39:19 · 919 阅读 · 0 评论 -
java 中的大数据类型(BigInteger和BigDecimal)
一、为什么为用到BigInteger和BigDecimal这种数据类型呢?我们非常清楚,java里面整型int与浮点型float,double它们存放数据的范围是有边界的。那么如果需要更大的数据时,这些数据类型肯定是满足不了这种需求,所以就用到了BigInteger和BigDecimal来解决这个问题。二、BigInteger与BigDecimal这两个类是什么包里面的?它们的作用分别是什转载 2012-08-11 17:22:26 · 1001 阅读 · 0 评论 -
C语言标准库函数 qsort 详解
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。函数原型:void qsort ( void * base, size_t num, size_t size, in转载 2012-08-15 11:12:42 · 586 阅读 · 0 评论 -
字符串操作1
find_first_not_of原型: #include size_type find_first_not_of( const string& str, size_type index = 0 ) const; size_type find_first_not_of( const Char* str, size_type index = 0 ) const; siz转载 2012-08-01 21:01:34 · 346 阅读 · 0 评论 -
并查集--学习详解
文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。[本文新址: http://www.ahathinking.com/archives/10.html ] 昨天和今天学习了并查集和trie树,并练习了三道入门题目,理解更为深刻,觉得有必要总结一下,这其中的内容定义之类的转载 2012-08-17 10:26:38 · 733 阅读 · 0 评论 -
g++常见错误提示
1>expected identifier before .... 一般情况下是枚举类型中的某个变量已经被#define定义过一次了,此次在项目空间中搜索你枚举类型中的所有变量类型,看看是否被#define过,如果被#define过,就把#define的删除或换个名字。 还有就是系统变量名、也不可从新定义,例union...2>expected primary-expressio原创 2012-08-17 11:33:07 · 1482 阅读 · 0 评论 -
C++ inline函数 内联函数
C++ inline函数在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。inline int min(int first, int secend) {/****/};inline 函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函数必须在调用该函数的每个文本文件中定义。当然,对于同一程序的不同文件,转载 2012-08-20 16:44:07 · 526 阅读 · 0 评论 -
字典树 (解析加模版)
字典树:又叫trie树,单词查找树。是一种树形结构,典型的用于统计。经常用于统计一片文章当中出现确定的单词的次数,它的优点就在于:省略了相同前缀的比较。以下图为例:用单词carbohy,carhure,english,englnee来构造的trie树。当你用trie树来查找一个单词的时候,就像查字典是一样的,先查第一个单词,然后查第二个,在树中我们用深度遍历就可以实转载 2012-10-07 08:46:06 · 534 阅读 · 0 评论 -
C语言中->
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.举个例子:struct Data{ int a,b,c;}; /*定义结构体*/struct Data * p;/*定义结构体指针*/s转载 2012-10-07 09:18:25 · 939 阅读 · 0 评论 -
C++中随机函数的应用
C++中的标准库(包含在中)提供两个帮助生成伪随机数的函数:rand()srand()函数一:int rand(void) ;从srand(seed)中指定seed开始,返回一个范围介于[seed,RAND_MAX(0x7fff))的随机整数函数二:void srand(unsigned seed) ;参数seed是rand()的随机种子,即用来初始转载 2012-09-20 18:44:21 · 653 阅读 · 0 评论 -
C++栈和队列(stack,queue,priority_queue)
C++如何使用栈和队列 用STL就十分方便了比如栈:#include//定义栈所需的头文件using namespace std;stack s;//定义一个元素为int型的栈int a=10;s.push(a);//将a入栈s.pop();//出栈一个元素s.empty();//返回栈是否为空s.size();//返回栈的大小s.top();//返原创 2012-08-04 19:54:16 · 777 阅读 · 0 评论 -
初级线段树讲解
转载关于线段树的讲解好久没写过算法了,添一个吧,写一个线段树的入门知识,比较大众化。上次在湖大,其中的一道题数据很强,我试了好多种优化都TLE,相信只能用线段树才能过。回来之后暗暗又学了一次线段树,想想好像是第三次学了,像网络流一样每学一次都有新的体会。把问题简化一下:在自然数,且所有的数不大于30000的范围内讨论一个问题:现在已知n条线段,把端点依次输入告诉你,然后有m个询问,转载 2012-10-15 09:04:30 · 434 阅读 · 0 评论 -
ACM竞赛中提交题目时常见的一些结果
1.Output Limit Exceed是超过输出限制(OLE)错误;提示你的程序产生了过多的输出信息,一般是由于死循环造成的。你的程序发生上述错误的主要原因是循环语句while(scanf("%d",&n))产生的。也有可能是输入字符时未使用getchar()缓冲2.memory limit exceed所用内存超出限制;3.Presentation E转载 2012-08-11 19:21:39 · 1219 阅读 · 0 评论 -
map、set、multimap、multiset(转)
概述关联容器(Associative Container)与顺序容器(Sequential Container)的本质区别在于:关联容器是通过键(key)存储和读取元素的,而顺序容器则通过元素在容器中的位置顺序存储和访问元素。关联容器支持通过键来高效地查找和读取元素,两个基本的关联容器是map和set。map的元素是“键-值”对的二元组形式:键用作元素在map中的索引,而值则表示所存储和读转载 2012-10-19 19:42:21 · 736 阅读 · 0 评论 -
STL学习
1>multiset的使用 默认排序:从大到小 方法:begin,insert,eraser 实例:http://blog.youkuaiyun.com/flqbestboy/article/details/8091383原创 2012-10-19 21:23:38 · 439 阅读 · 0 评论 -
c++map的用法
最全的c++map的用法此文是复制来的0.01. map最基本的构造函数;mapmapstring; mapmapint;mapmapstring; mapmapchar;mapmapchar; mapmapint;2. map添加数据;mapmaplive;1. maplive.insert(pair(102,"aclive"));2. maplive转载 2012-11-14 21:26:43 · 69538 阅读 · 3 评论