转载知识
亿念之茶
I'm a newbie,but i believe i could fly one day!
展开
-
杭电题目分类
分类一:贪心:1009、1045、1049、1050、1051、1052、1257、1800、2037、2111、2124、2187、2391、2570DP:1003、1024、1029、1069、1074、1087、1114、1159、1160、1171、1176、1203、1231、1257、1260、1284、1421、1789、1978、2059、2084、2159、2191、转载 2014-08-06 08:30:19 · 482 阅读 · 0 评论 -
博弈论 PN点
博弈论:组合博弈* 必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。* 必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。* 必败(必胜)点的属性:* (1) 所有终结点是必败点(P点);* (2) 从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点);* (3)无论如何操作, 从必败点(P点)都只原创 2015-03-26 18:17:17 · 1050 阅读 · 0 评论 -
C++ STL Vector容器的用法
C++STL中vector容器的用法vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下面的代码:#include转载 2015-03-26 18:21:21 · 252 阅读 · 0 评论 -
贪心与动态规划的区别
贪心与动规的区别 关键: 看是否用到之前的最优解,如果用到就是动态规划,否则就是贪心,贪心无法解决动态规划的问题,但是动态规划能解决贪心的问题 很多同学在做动规题的时候,很容易做成贪心,的确,动规和贪心是很相近的,在很多时候,动规和贪心没有明显的界限,反而在很多时候,我们需要使用贪心的思想,对动规进行优化,不过这也就导致了很多同学分不清什么题是动规,什么题是贪心。 现在原创 2015-03-22 10:50:18 · 4092 阅读 · 2 评论 -
贪心+背包详解
贪心法——活动选择问题和背包问题 今天上午听了米老师讲的算法,感觉收获很多,对于算法更加有信心了。首先,先来宏观看一下: 这三种算法总的来说,刚开始看的时候不知道怎么下手,但是看多了也会有那么一点儿感觉。分治法是这三种算法里面都有的思想,动态规划和贪心都是转载 2015-03-22 10:44:57 · 830 阅读 · 0 评论 -
基姆拉尔森计算公式
基姆拉尔森计算公式 算法如下:基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。原创 2015-04-12 17:41:35 · 1170 阅读 · 0 评论 -
快速幂模板(数+矩阵)
快速幂模板下面是 m^n % k 的快速幂:// m^n % kint quickpow(int m,int n,int k){ int b = 1; while (n > 0) { if (n & 1) b = (b*m)%k; m = (m*m)%k;原创 2015-04-23 19:21:09 · 438 阅读 · 0 评论 -
拓扑排序算法模板
拓扑排序算法:该算法是简单而直观的,实质上属于广度优先遍历,因此称为广度优先拓扑排序算法。算法包含下列几个步骤: [1] 从有向图中找一个没有前趋的结点v,若v不存在,则表明不可进行拓扑排序(图中有环路),结束(不完全成功); [2] 将v输出; [3] 将v从图中删除,同时删除关联于v的所有的边 [4] 若图转载 2015-04-08 20:53:49 · 404 阅读 · 0 评论 -
拓扑排序
拓扑排序源自:http://blog.csdn.net/u012860063?viewmode=contents把每个变量看成一个点,“小于”关系看成有向边,则我们得到了一个有向图。这样,我们的任务实际上是把一个图的所有结点排序,使得每一条有向边(u,v)对应的u都排在v的前面。在图论中,这个问题称为拓扑排序。 不难发现:如果图中存在有向环,则不存在拓扑排序,反之则存在原创 2015-04-08 21:43:44 · 507 阅读 · 0 评论 -
卡特兰数
卡特兰数分类: 数学2catalan number 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786.... 递推公式:令h(1)=1,h(0)=1, catalan数满足递归式: h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中转载 2015-04-14 15:28:14 · 392 阅读 · 0 评论 -
斜率优化 DP
斜率优化DPhttp://www.cnblogs.com/ka200812/archive/2012/08/03/2621345.html#3159481我们知道,有些DP方程可以转化成DP[i]=f[j]+x[i]的形式,其中f[j]中保存了只与j相关的量。这样的DP方程我们可以用单调队列进行优化,从而使得O(n^2)的复杂度降到O(n)。 可是并不是所有转载 2015-04-24 20:25:08 · 355 阅读 · 0 评论 -
Notepad++ 软件使用
Notepad++是闪电博客推荐程序员必用的一款适合编程的文本编辑软件,本文主要介绍Notepad++的特点和使用技巧,特别嘱咐大家,Notepad++的插件非常强大,目前已有100多款插件,可以参考这篇文章:Notepad++插件精品推荐。先介绍几个网址: Notepad++官方下载地址 Notepad++官网1,轻量化,软件下载下来只有6MB,解压后不过10MB原创 2015-08-12 21:41:59 · 474 阅读 · 0 评论 -
深搜和广搜算法
深搜和广搜算法思想本文转载自:http://blog.csdn.net/bool_isprime/archive/2010/08/11/5803018.aspx深度优先搜索和广度优先搜索的深入讨论一、深度优先搜索的特点是: (1)从上面几个实例看出,可以用深度优先搜索的方法处理的题目是各种各样的。有的搜索深度是已知和固定的,如例题2-4,原创 2015-03-25 20:36:57 · 6137 阅读 · 0 评论 -
最长公共子序列
最长公共子序列动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】 求两字符序列的最长公共转载 2014-12-13 23:12:44 · 474 阅读 · 0 评论 -
最长公共子序列
一、什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列。 举例如下,如:有两个随机数列,1 2 3 4 5 6 和 3 4 5 8 9,则它们的最长公共子序列便是:3 4 5。 一直不明白:最长公共子串和最转载 2014-12-13 23:15:55 · 453 阅读 · 0 评论 -
功能强大的sscanf函数
功能强大的sscanf函数函数原型: Int sscanf( const char * src, const char * format, ...);int scanf( const char * format, ...);这两个函数很相似,只是第一个函数以src作为输入,而第二个函数以标准输入STDIN读取输入;format 是格式控制字符串,它包含控制字符(如:转载 2014-08-06 10:20:49 · 478 阅读 · 0 评论 -
功能强大的sscanf函数(2)之正则表达式
一、说明:1、sscanf():从一个字符串中读进与指定格式相符的数据.2、sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。二、控制sscanf函数变量接收值的控制字符1、%[..],当字符属于方括号里表达式表示的字符集时继续读取,否则停止.方括号里的和正则表达式差不多,^是"排除..."的意思2原创 2014-08-06 20:07:00 · 408 阅读 · 0 评论 -
const与define的对比
const与define的对比define常见用法:1.定义简单的常数:定义常量,便于修改(切不可在后面加上分号!)#define N 1000等效于const int N = 1000;但略有不同,define只是简单替换,而不是作为一个变量来使用. 2. 定义简单的函数:注意多使用括号 define可以像函数那样接受一些参数,如下:转载 2014-07-29 14:53:42 · 523 阅读 · 0 评论 -
快速幂取模算法
快速幂取模算法分类: 算法 C/C++ 2010-04-20 14:46 7114人阅读 评论(2)收藏 举报算法recursioniostream优化c加密参考文章来源:Reait Home(http://www.reait.com/blog.html) 转载请注明,谢谢合作。 在Miller Rabbin测试素数,就用到了快转载 2014-07-31 17:48:35 · 415 阅读 · 0 评论 -
母函数知识
母函数生成函数即母函数,是组合数学中尤其是计数方面的一个重要理论和工具。生成函数有普通型生成函数和指数型生成函数两种,其中普通型用的比较多。形式上说,普通型生成函数用于解决多重集的组合问题,而指数型母函数用于解决多重集的排列问题。母函数还可以解决递归数列的通项问题(例如使用母函数解决斐波那契数列的通项公式)。目录1简介2函数3指数型母函数转载 2014-08-08 17:40:43 · 905 阅读 · 0 评论 -
博弈论
博弈论(一):Nim游戏重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim游戏是组合游戏(Combinatorial Games)的一种,转载 2014-08-07 16:40:04 · 524 阅读 · 0 评论 -
博弈类型的题 kiki's game hdoj 2147
基础的基础a) 当前执行者想赢。这个是必要的,有时候题目中判别胜负的条件会与平时练习的恰好相反,此时你就应该按照题目要求思考,即在经典模型中思考当前执行者想输的策略。b) 定义P-position和N-position,其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-position,也就是“后手可保证必胜”或者“先手必败”,现在轮到move的转载 2014-08-07 16:17:19 · 549 阅读 · 0 评论 -
错排
问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题。错排问题最早被尼古拉·伯努利和欧拉研究,因此历史上也转载 2014-08-14 16:01:45 · 468 阅读 · 0 评论 -
递归及递推问题 专题知识
递归专题 (2011-07-18 20:05:41)标签: 杂谈 递归专题:我个人认为递归是算法中很重要的武器,虽然递归的效率很慢,但他是我们学习其他算法的基础,而递归这一算法又很抽象,也很难调试,所以我认为我有必要要这里好好理解递归这一有力的武器。。表达式的转化:#include#include#转载 2014-08-15 21:25:55 · 699 阅读 · 0 评论 -
博弈论相关点
寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态)(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.n = (m+1)r+s , (r为任意自然数,s≤m), 即n%(m+1) != 0, 则先取者肯定获胜(二)威佐夫博奕(Wythoff Ga转载 2014-10-19 15:45:35 · 445 阅读 · 0 评论 -
最长上升子序列
最长上升子序列 最近在做单调队列,发现了最长上升子序列O(nlogn)的求法也有利用单调队列的思想。 最长递增子序列问题:在一列数中寻找一些数,这些数满足:任意两个数a[i]和a[j],若i 设dp[i]表示以i为结尾的最长递增子序列的长度,则状态转移方程为:dp[i] = max{dp[j]+1}, 1 这样简单的复杂度为O(n原创 2015-04-05 23:08:45 · 418 阅读 · 0 评论