- 博客(41)
- 资源 (25)
- 收藏
- 关注
转载 【总结】字符串匹配: KMP 和 拓展KMP
比起ac自动机,kmp就一个next数组,理解了如何初始化next后就可以搞一些模板题了,下面是还不错的学习资料,清晰易懂,自己用的模板也来自它: http://chaoswork.com/blog/2011/06/14/kmp%E7%AE%97%E6%B3%95%E5%B0%8F%E7%BB%93/kmp模板next[0]=-1;j=-1;for(i=0;im;){
2016-04-30 13:38:52 452
转载 线段树
1.概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,它基本能保证每个操作的复杂度为O(lgN)。2.线段树基本操作 线段树的基本操作主要包括构造线段树,区间查询和区间修改.3.线段树的相关操作代码(1) 线段树构造首先介绍构造线段树的方法:让根节点表
2016-04-30 13:37:57 278
转载 【转】C语言的位运算的优势
位运算加速技巧1. 如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300%x = x * 2;x = x * 64;//改为:x = x << 1; // 2 = 21x = x << 6; // 64 = 262. 如果除上一个 2 的倍数数值,可以改用右移运算加速 350%x = x / 2;x = x / 64;//改为:x = x >...
2016-04-30 13:07:56 566
原创 最少拦截系统
最少拦截系统Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 31947 Accepted Submission(s): 12564Problem Description某国为了防御敌国的导弹袭击,发展出一种导弹
2016-04-30 10:26:54 336
转载 C++ 排序函数 sort(),qsort()的用法
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表: 函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素部分排序
2016-04-24 19:51:30 333
原创 分拆素数和
Description把一个偶数拆成两个不同素数的和,有几种拆法呢? Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。 Output对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。 Sample Input30260
2016-04-24 17:43:33 414
原创 1801 不重复的三位数
1801 不重复的三位数 Time Limit : 1000 MS | Memory Limit : 65536 KBSubmits : 16 | Solved : 4 Description给定一个正整数n,则1,2,...,n这n个数字能组成多少个互不相同且无重复数字的三位数。Input输入一个正整数n ( 3 <= n <= 9 )。Output先输出三位数的个数, 然后按升序输...
2016-04-22 20:29:02 1501
原创 KMP模板代码
#include#include#includeint next[100];void getnext(char b[]){ int i=1,j=0;//i是每个位子,j是回退的位子 next[1]=0; while(i { if(j==0||b[i-1]==b[j-1]) {
2016-04-19 19:40:43 530
原创 向量的叉积
向量的叉积性质都忘完了……但是它可以用来判断点在直线的某侧。进而可以解决点是否在三角形内,两个矩形是否重叠等问题。向量的叉积的模表示这两个向量围成的平行四边形的面积。 设矢量P = ( x1, y1 ),Q = ( x2, y2 ),则矢量叉积定义为由(0,0)、p1、p2和p1+p2所组成的平行四边形的带符号的面积,即:P×Q = x1*y2 - x2*y1,其结果是一个伪矢量。
2016-04-17 21:28:54 684
转载 【计算几何】线段相交
问题描述:已知两条线段P1P2和Q1Q2,判断P1P2和Q1Q2是否相交,若相交,求出交点。两条线段的位置关系可以分为三类:有重合部分、无重合部分但有交点、无交点。算法的步骤如下:1.快速排斥实验。设以线段P1P2为对角线的矩形为R,设以线段Q1Q2为对角线的矩形为T,如果R和T不相交,则两线段不相交。2.跨立实验。如果两线段相交,则两线段必然相互跨立对方。若P1P2跨
2016-04-17 20:07:15 1123
原创 不容易系列之一
不容易系列之一Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18519 Accepted Submission(s): 7722Problem Description大家常常感慨,要做好一件事情真的不容易,确
2016-04-17 19:44:43 314
原创 C++ Queues(队列)
C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。 back()返回最后一个元素empty()如果队列空则返回真front()返回第一个元素pop()删除第一个元素push()在末尾加入一个元素size()返回队列中元素的个数
2016-04-16 16:05:33 332
原创 C++ Lists(链表)
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.assign()给list赋值back()返回最后一个元素begin()返回指向第一个元素的迭代器clear()删除所有元素empty()如果list是空的则返回trueend()
2016-04-16 16:03:48 452
原创 C++ Stacks(堆栈)
C++ Stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,——也就是说实现了一个先进后出(FILO)的数据结构。操作比较和分配堆栈empty()堆栈为空则返回真pop()移除栈顶元素push()在栈顶增加元素size()返回栈中元素数目top()返回栈顶元素
2016-04-16 15:44:07 423
原创 判断子字符串是否出现在主字符串内
//strstr(string,search)#include #include // 从str1中查找str2的个数,并返回int findChildCnt(char* str1, char* str2){ int len = strlen(str2); int cnt = 0; while (str1 = strstr(str1, st
2016-04-16 15:24:27 577
原创 约瑟夫问题
#include#includeint main(){ int x,n,i,a[1000],sum; // while(~scanf("%d",&n)) { scanf("%d%d",&sum,&x); int l=sum; for(i=0;i a[i]=i+1;
2016-04-16 15:22:47 282
原创 不一样的A+B
#include#include#includeint main(){ char plus[1]="+",ch[105],c[105],b[105][105]={"zero","one","two","three","four","five","six","seven","eight","nine"}; int select=0,j,l=0,ii=0,blank
2016-04-16 15:21:56 1101
原创 通讯录
#include#includeint main(){ int n; printf("请输入通讯录中的人的总数。"); scanf("%d",&n); getchar(); printf("请输入通讯录中人的姓名和其对应的编号:\n"); int i; char name[40][40]; int tell
2016-04-16 15:19:17 407
原创 二分查找
//用来查找元素,例:输入1 2 3 4查找3出现的位置,则返回下标2#includeint a[100];bool find(int key,int st,int end){int i=0;while(st{int mid = (st+end)/2;if(a[mid]==key){printf("%d",mid);break; }els
2016-04-16 15:18:18 314
原创 二分法
//计算n的k次方一种更节省时间的算法#includeint power(int n,int k){int x;if(k==1)return n;x=power(n,k/2);if(k%2==0)return x*x;elsereturn x*x*n;}int main(){int s,n,k;while(~scanf("%
2016-04-16 15:17:51 438
转载 从斜边之长为L的一切直角三角形中,求有最大周长的直角三角形.(多元函数的极值及其求法)
三条直线围成的直角三角形三个顶点A(16,0),B(0,8),C(0,0),设点(x,y)到AB,BC,AC的距离分别是d1,d2,d3,有:|AB|*d1+|BC|*d2+|AC|*d3=2S(ABC) 而(|AB|*d1+|BC|*d2+AC*d3)^2=4S^(ABC)/(|AB|^2+|BC|^2+|AC|^2)=128/5 等号成立当且仅当|AB|/d1=|BC|/d2=|A
2016-04-16 14:00:23 9756
原创 线索二叉树
一、线索二叉树的原理 通过考察各种二叉链表,不管儿叉树的形态如何,空链域的个数总是多过非空链域的个数。准确的说,n各结点的二叉链表共有2n个链域,非空链域为n-1个,但其中的空链域却有n+1个。如下图所示。 因此,提出了一种方法,利用原来的空链域存放指针,指向树中其他结点。这种指针称为线索。 记ptr指向二叉链表中的一个结点,以下是建立线索的规
2016-04-14 20:34:59 1364
转载 const常见用法
const用法主要是防止定义的对象再次被修改,定义对象变量时要初始化变量 下面我就介绍一下几种常见的用法1.用于定义常量变量,这样这个变量在后面就不可以再被修改 const int Val = 10; //Val = 20; //错误,不可被修改 2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传递参数给一个函数,在这个函数里这
2016-04-14 20:05:53 395
转载 const用法
1. const的用法:(1)定义常量(2)修饰函数的参数(3)修饰函数的返回值(4)修饰函数的定义体2. 用const 修饰函数的参数(1)const 只能修饰输入参数如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针。 例如:void StringCopy(char *strDestin
2016-04-14 20:05:11 296
转载 qsort函数用法
qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *)); 各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针用于确定排序的顺序 排序方法有很多种, 选
2016-04-14 19:55:14 378
转载 (cosψ)的三次方怎么积分
cosψ^3=cosψ(1-sinψ^2)=cosψ-cosψsinψ^2;之后积分∫(cosψ-sinψ^2)dψ=∫ cosψdψ-∫ cosψsinψ^2dψ;∫ cosψdψ=sinψ,由分部积分法可得:∫ cosψsinψ^2dψ=∫ sinψ^2 d(sinψ);令sinψ=u,则∫ cosψsinψ^2dψ=∫ sinψ^2 d(sinψ)=∫ u^2 du=1/3
2016-04-14 18:25:47 8357
转载 DFS与BFS
写在最前的三点:1、所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次。2、实现bfs和dfs都需要解决的一个问题就是如何存储图。一般有两种方法:邻接矩阵和邻接表。这里为简单起见,均采用邻接矩阵存储,说白了也就是二维数组。3、本文章的小测试部分的测试实例是下图:一、深度优先搜索遍历1、从顶点v出发深度遍历图G的算法① 访问v② 依次从顶点v未被访问的邻接点出发深度遍历。2、一点心得:dfs算...
2016-04-12 21:02:19 21005 1
转载 HDU 1495(非常可乐)
Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是...
2016-04-12 20:36:46 401
转载 c++堆栈中 top() pop()的具体作用是什么
top()是取栈顶元素pop()是弹出栈顶元素stack a;a.push(1); // 1a.push(2); // 1 2a.push(3); // 1 2 3int c = a.top(); // c = 3a.pop(); // 1 2a.push(4); // 1 2 4c = a.top(); // c = 4
2016-04-12 20:17:04 10994
转载 inline函数和一般的函数有什么不同
比如 int g(int x) { return x + x; } int f() { return g(); } 这样f会调用g,然后g返回x + x给f,然后f继续把那个值返回给调用者。 如果g是inline的话。f会被直接编译成。 int f() { return x + x; } 相当于把g执行的操作直接融合到f里。这样减少了调用g消耗的时间,但同时
2016-04-12 20:09:16 587
原创 HDU1181:变形课(DFS)
Description呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规律:如果咒语是以a开头b结尾的一个单词,那么它的作用就恰好是使A物体变成B物体. Harry已经将他所会的所有咒语都列成了一个表,他想让你帮忙计算一下他是否能完成老师的作业,将一个B(ball)变成一
2016-04-12 19:56:31 411 1
原创 题目1335:闯迷宫( BFS在求解最短路径或者最短步数上有很多的应用)
题目描述:sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫。sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数。知道了最少步数就可以辅助控制比赛难度以及去掉一些没有路径到达终点的map。比赛规则是:从原点(0,0)开始走到终点(n-1,n-1),只能上下左右4个方向走,只能在给定的矩阵里走。输入:输入有
2016-04-12 18:28:12 2626
原创 PS里建立工作路径对话框中的“容差”是干什么的?
这里的容差是指:将选区转换为路径时的平滑程度,容差越大,平滑越重;容差越小,越精确(与原选区对照),越接近你画的选区。PS的容差用在不同的地方,有不同的用法,比如魔棒工具里也有容差。魔棒工具的最重要的属性是“容差”,容差就是魔棒在自动选取相似的颜色选区时的近似程度,容差越大,被选取的区域将可能越大,所以适当的设置容差是很必要的。
2016-04-10 16:41:16 3296
原创 栈c++代码实现
//实在不想写数组法了,写个常用的STL的吧#include "iostream"#include "algorithm"#include "stack"using namespace std; void Init(stack int> s){while(!s.empty()){s.pop();}} int main(){stack
2016-04-10 14:56:07 697
原创 队列c++代码
#include "iostream"#include "algorithm"#include "queue"using namespace std; void Init(queue int> q){while(!q.empty()){q.pop();}} int main(){queue int> q;int n,qu;whil
2016-04-10 14:55:25 675
原创 链表c++代码的实现
//说明:各位测试数据的时候,请严格按照主函数来测试数据。因为这个链表是假设所有输入数据正确的情况。。。假如随便乱输入的话。。我没写边界检查。//本次写法是比较简洁的。方便大家学习。 #include "iostream"using namespace std;typedef struct Node{char ch;struct Node
2016-04-10 14:54:18 513
原创 const与define之间的区别?
const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。举例:const double pi = acos(-1.0);//定义π
2016-04-10 14:48:57 541
转载 图像格式jpg、jpeg、jpe、gif、png、png等有何不同?ps中那种图片格式可以保留图层?
(1)jpg格式:即为jpeg格式,是通过压缩改变画质和文件尺寸的格式。压缩后恶化的图像无法还原,使用于数字图像及Web中的照片中。(2)jpeg格式:是目前网络上最流行的图像格式,一般简称为jpg格式,是可以把图像文件压缩到最小的格式。jpeg格式的图片在获得极高的压缩率的同时能展现十分丰富生动的图像。由于体积小,因此非常适合应用与互联网,可减少图像的传输时间,也普遍应用于需要连续色调的图像
2016-04-10 14:44:19 6976
转载 设z=〖(1+xy)〗^y,求 ∂z/∂y
z=〖(1+xy)〗^ylnz=yln(1+xy)两边同时对y求偏导,得1/z ·∂z/∂y=ln(1+xy)+y·1/(1+xy)· x1/z ·∂z/∂y=ln(1+xy)+xy/(1+xy)所以∂z/∂y=z·【ln(1+xy)+xy/(1+xy)】=〖(1+xy)〗^y【ln(1+xy)+xy/(1+xy)】
2016-04-09 15:24:55 3691
转载 HDU1969:Pie(二分)
Problem DescriptionMy birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a number N of them, of various tastes and of various sizes. F of my friends are coming t
2016-04-09 08:52:01 471
文本乱码识别工具包下载
2020-12-03
全国省市直辖市文档
2018-10-18
java需要用到的redis包
2018-10-15
json所需要的包
2018-10-15
jetty9分拆的各个包下载
2018-10-15
java用到的所有常用jar包(mysql、json、ssm、websocket...)
2018-10-12
web中常用api
2018-02-19
线性表定义与实现
2018-02-19
欧拉函数公式以及证明
2018-02-19
图论的课件
2018-02-19
动态规划ppt详解
2018-02-19
网络流初步
2018-02-19
Polya定理以及知识点详解
2018-02-19
treap代码实现
2018-02-19
ACM培训演讲稿
2018-02-19
Polya定理Polya定理Polya定理
2017-11-09
动态规划动态规划概念 最长上升子序列 最长公共子序列 矩阵连乘问题 背包问题 树形DP 状态压缩DP
2017-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人