自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 null

#include#includeusing namespace std;const int N = 5555;int seg[32][N];int lesscnt[32][N];int sa[N];#define lson l, m, rt<<1#define rson m+1, r, rt<<1|1void build(int d, int l, int r,

2012-08-10 00:58:15 327

原创 NULL

int size = 1;struct t { int p, v;}trie[20005][26];void insert(char *s){ int idx; int p = 0; while(*s) { idx = *s - 'a'; if(!trie[p][idx].p) trie[p][idx].p = size++; trie[p][idx].v +

2012-08-10 00:57:43 265

原创 字符串HASH

首先是邻接表的实现const int N = 'n' + 'e' + 'k' + 'o' + 'P'; struct node{ int v; int next;}child[N];int head[N];int len = 0;void addedge(int hash_val,int real_val){ child[++len].v = real_val; chi

2012-07-28 23:34:25 397

原创 [搜索]DFS+BFS

从一道水题 看下基本思路POJ 3620  DFS ver1.#include#includeusing namespace std;#define FRE freopen("in.txt","r",stdin)const int N = 110;int map[110][110];int xmove[4][2] = {-1, 0, 1, 0, 0, -1, 0, 1};

2012-07-16 09:43:57 305

原创 [刷题笔记] FZU 1015 土地划分

题意:中文题, 略思路:在矩形内, 每多一条线,矩阵至少会被多分割一次。每当与其他直线相交, 矩阵会被再分割一次。因为数据规模不大(L要点:判断两线段是否相交; 快速排斥实验 + 跨立实验 (这东西到处都有就不说了另外这题比较特殊, 只要用跨立实验判断即可。代码:#includeusing namespace std;co

2012-07-15 22:42:57 960

原创 [动态规划]线性(一维/串、环)模型

线性模型一个序列、一串数字或者是一个字符串等等对于“环”,我们可以将其展开形成“非环”,通常可以待操作的串复制一遍接在后面,形成双倍长度的串来表示原先的环。例题:最大子串和最长上升子序列(LIS)矩阵连乘最大子串和题目大意:           给出一个整数串a,a[i]表示其中的第i个整数,a[i]有正有负,求其中一个连续子串,

2012-07-14 23:13:34 1297

原创 [动态规划]背包九讲自解

P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][

2012-07-14 23:02:05 627

原创 [数据结构]树状数组专辑

树状数组蛮简单的说~资料参考:百度百科讲的还是蛮清楚的摘录一些重要的:一般应用于数组求和, 数据更新。树状数组是一个查询和修改复杂度都为log(n)的数据结构比较:树状数组是一个可以很高效的进行区间统计的数据结构。在思想上类似于线段树,比线段树节省空间,编程复杂度比线段树低,但适用范围比线段树小。比较重要的地方是树状数组一般都是实时更新实时使

2012-07-13 23:43:06 424

原创 [最小生成树]Prim算法和Kruskal算法

最小生成树一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图联通的最少的边。最小生成树3条构造最小生成树的准则:只能使用该网络中的边来构造最小生成树只能使用恰好n-1条边来联结网络中的n个结点选用的这个n-1条边不能构成回路。MST性质假设N=(V,{E})是一个连通网,U是顶点集

2012-07-11 20:20:16 1019

转载 [数据结构]线段树专辑

(以下内容多数出自notonlysuccess大神的线段树专辑)首先是准备知识( 好吧, 我承认我是弱菜满二叉树和完全二叉数中 非叶节点 id 的子节点序号分别为 id*2, id*2+1;(id在代码前先介绍一些我的线段树风格:maxn是题目给的最大区间,而节点数要开4倍,确切的来说节点数要开大于maxn的最小2x的两倍lson和rson分辨表

2012-07-10 23:32:31 738

原创 [日常] 关于求素数

素数是除了一和它本身之外再不能被其他数整除的自然数。求素数的方法有很多种,最简单的方法是根据素数的定义来求。对于一个自然数N,用大于1小于N的各个自然数都去除一下N,如果都除不尽,则N为素数,否则N为合数。对于N来说,只需用小于N的素数去除就可以了。例如,如果N能被15整除,实际上就能被3和5整除,如果N不能被3和5整除,那么N也决不会被15整除。第三,对于N来说,不必用从2到N一1的

2012-07-09 23:29:56 521

原创 [C/C++]scanf与sscanf

[C/C++]scanf与sscanf一、scanf基本概念scanf函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中,其关键字最末一个字母f即为“格式”(format)之意。scanf函数的一般形式scanf(格式控制,地址表列)int scanf(char *format[,argument,...]);“格式控制”的

2012-07-09 23:29:14 2733

原创 [日常]浮点误差

一、获取浮点数的整数部分double x一般想法是int(x),但是实际上存在浮点误差。例如:(int)(8700*0.94) = 8177;8700*0.94 = 8178;原因是,在C语言中, 8700 * 0.94 = 8177.999999999999解决方案是:#define eps 1e

2012-07-09 23:27:41 517

原创 [算法]搜索相关

算法中最基本和常用的是搜索。比赛中,参赛选手基本上都会使用常用的搜索算法,题目的区分度往往就是建立在诸如剪枝之类的优化上了。  什么是搜索算法呢?搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法。搜索过程实际上是根据初始条件和扩展规则构造一棵解答树并寻找符合目标状态的节点的过程。第一部分:二分查找

2012-07-09 23:27:09 422

原创 [动态规划]最大子序列+最大子矩阵

一,最大子序列所谓最大子序列,即元素和最大的连续子序列。 此次重点是动态规划, 所以其他方法就不说。一切源于一个很容易理解但是很难想到的方程,设b[i]表示以第i个元素a[i]结尾的最大子序列b[i+1] = b[i]>0?(b[i]+a[i+1]):a[i+1];这样, 只要找出 数组b[]中的最大元素 即为最大子序列。二,

2012-07-09 23:20:31 461

原创 [日常] 错排公式+组合数

一,错排公式Dn=[n!/e+0.5]只是近似值!4次WA的代价啊!应该写成这样当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况

2012-07-09 23:17:25 573

原创 [Coding]一些小心

1.字符与数字转换‘1’ == 1 + ‘0’;  2.关于π的取值#include  #define PI acos(-1.0) 4. memset 相关整形数组只能初始化为零, 否则将出错。大小应严格按照原数组大小乘以类型字节数6 、空行读取判断while(gets(str), cmp(st

2012-07-09 23:15:09 341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除