自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 hdu3068 Manacher模板

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;//#pragma comment(linker, "/STACK:102400000,1024

2016-04-27 10:10:09 217

原创 51nod1066bash游戏

题目:一堆石子有n个, 每次可以取大于等于1不超过m的任意个,去最后一个的人胜利,给你n , m ,问先手必胜还是后手必胜。思路:最优解是两个人每回合取(m+1)个数。所以只需要判断n%(m+1)的结果就可以#include #include #include #include #include #include #include #include #inc

2016-04-25 18:13:33 375

原创 Codeforces3D#51nod1476 括号匹配的最小代价

题目大意:这里有一个关于合法的括号序列的问题。如果插入“+”和“1”到一个括号序列,我们能得到一个正确的数学表达式,我们就认为这个括号序列是合法的。例如,序列"(())()", "()"和"(()(()))"是合法的,但是")(", "(()"和"(()))("是不合法的。我们这有一种仅由“(”,“)”和“?”组成的括号序列,你必须将“?”替换成括号,从而得到一个合法的括号序列。

2016-04-25 17:28:38 1012

原创 wust1591

题目大意:有串P,Q,任选一个串S使得三者最长公共子序列最小。解法:直接统计字符出现次数….出现次数最少的那个就是…..…………………………………………………………………………………………#include #include #include #include #include #include #include #include #include

2016-04-25 15:43:42 232

原创 wust1592期望

题目大意:有n个点,每个点得分概率为p,连续x个得分点的总得分为1+2+3+..+x,求n个点总得分的期望解法  E(n)=1*p^n+2*p^(n-1)+...+n*p在用错位相减法求出结果为:E(n) = (p^(n+2) - (n + 1)p^2 + nP) / (p-1)^2特判p = 1的情况。#include #include #incl

2016-04-25 15:21:10 227

原创 wust1593线段树

题目大意:给你n个数,m次操作,操作有两种 0 l r ,计算n个数从l乘到r后置0的个数,1 a b ,将a位置换位b。每个数均小于100,n,m思路:简单的线段树,每个节点维护该区间拥有的2的因子个数,5的因子个数,以及数据里是否拥有0.每次计算,如果有0输出1,否则输出因子2和5的最小个数。ps:记录0的个数的时候没有0忘记初始化为0.。。。。。。。#include

2016-04-25 15:00:31 236

原创 poj1845 逆元,快速模幂

题目大意:给定两个正整数和,求的所有因子和对9901取余后的值。分析:很容易知道,先把分解得到,那么得到,那么     的所有因子和的表达式如下     因为要取模且存在除法,所以要用到逆元。对于正整数和,如果有,那么把这个同余方程中的最小正整数解叫做模的逆元。 逆元一般用扩展欧几里得算法来求得,如

2016-04-22 13:29:43 1082

原创 51nod 125乘法逆元 (扩展欧几里得)

给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。Input输入2个数M, N中间用空格分隔(1 Output输出一个数K,满足0 Input示例2 3Output示例2思路:对于正整数和,如果有,那么把这

2016-04-22 09:28:11 1037

转载 乘法逆元

定义:满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元。为什么要有乘法逆元呢?当我们要求(a/b) mod p的值,且a很大,无法直接求得a/b的值时,我们就要用到乘法逆元。我们可以通过求b关于p的乘法逆元k,将a乘上k再模p,即(a*k) mod p。其结果与(a/b) mod p等价。证:(其实很简单。。。)根据b*k≡1 (mod p)有b*k=p*

2016-04-20 18:03:10 282

原创 hdu1358 KMP循环节

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#pragma comment(linker, "/STACK:102400000,102400

2016-04-13 20:52:18 273

原创 ubuntu如何强制关闭qq和启动qq

第一次在终端直接输入qq就启动了,但是后拉力鼠标放到qq的图表上就看不到了,也打不开qq主面板。上网查了一下首先,用ps查看进程,方法如下:$ ps -ef……smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx       1823  1822  0 11:38 ?        00:00

2016-04-11 19:46:44 2753

原创 ubuntu 安装搜狗输入法

1、百度下载搜狗拼音for linux2、安装3、运行im-config命令,选ok是,选中fcitx(启用小企鹅拼音) , 然后退出去重启电脑。4、重启后看输入法那一栏能不能切换到搜狗拼音,不能的话运行fcitx-config-gtk3,选择窗口左下角的+号,取消只显示当前语言的勾,搜索搜狗输入法,添加即可

2016-04-11 14:27:05 261

原创 HDU3746 KMP相同公共前缀和公共后缀的最大长度应用及KMP

题目大意:在字符串后面最少添加多少个字符可以实现两次循环。思路:前面有提到过字符串相同公共前缀和公共后缀的最大长度。他的求法和next求法类似,次数也用next数组命名。求得相同前缀和的后缀的最长长度后,进行判断。如果next[last] = 0,则说明这个字符在前面只出现了一次,必须在结尾加len个字符。若果next[last]刚好可以被字符创长度整除,说明前面已经构成了循环,所以添加0

2016-04-11 13:31:26 805

转载 hdu3336 KMP应用

题意:给一个字符串,输出包括从1到len长 字符串每个前缀出现的总个数  YY: 基本思想是 KMP + DP,主要看KMP        kmp思想:对字符串进行预处理,记录与当前位置i后缀相同的“最近”位置,用next[i]记录,             保证 s[1 .. i] 中 s[i - next[i] + 1 .. i] 与 s[1 .. next[i]] 是相同

2016-04-10 17:21:00 292

转载 whu1608 遍历子集状压写法

题目大意:给你n个数和s,问最多将n分为多少组,使每组通过加减操作能得到s的组数最多,输出组数接下来粘贴大神代码,以便学习#include #include #include #include using namespace std;typedef long long lint;int n, s, T, a[20];int sum[1 << 20], f[1

2016-04-10 14:50:20 397

原创 面试常见问题链接

1、堆和栈的区别 : 堆和栈区别2、c/c++内存分配方式: C/C++内存分配方式3、内存溢出及解决方案 : 点击打开链接4、Struct 和Class区别: struct和class区别5、C++虚函数和纯虚函数的区别 : 虚函数6、C语言异常处理机制: 异常7、C语言文件操作: 文件操作8、UDP和TCP区别

2016-04-10 14:43:39 302

原创 单链表反转

node *Reverse(node *head){ node *p1 , *p2 , *p3; if(head == NULL || head -> next == NULL) return head; p1 = head , p2 = head -> next; while(p2 != NULL) { p3 = p2 -> next;

2016-04-10 14:43:06 270

转载 堆和栈的区别

一、预备知识—程序的内存分配    一个由C/C++编译的程序占用的内存分为以下几个部分    1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其    操作方式类似于数据结构中的栈。    2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回    收   。注意它与数据结构中的堆是两

2016-04-10 14:21:10 247

转载 c/c++内存分配方式

C/C++内存分配有三种方式:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配。程序在

2016-04-10 14:19:16 629

转载 内存溢出原因及解决方案

内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。    引起内存溢出的原因有很多种,常见的有以下几种:  1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;  2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;  3.代码中存在死循环或循环产生过多重复的对象实体;  4.使用的第三方软

2016-04-10 14:18:03 4237 1

转载 Struct和Class的区别

转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.htmlC++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和c

2016-04-10 14:17:11 225

转载 c++虚函数和纯虚函数的区别

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plain copy

2016-04-10 14:16:29 348

转载 C语言异常处理机制

1.概述      什么是异常?异常一般指的是程序运行期(Run-Time)发生的非正常情况。异常一般是不可预测的,如:内存不足、打开文件失败、范围溢出等。UNIX 使用信号给出异常,并当发生异常时转跳到信号处理过程进行异常处理。DOS下的信号对比UNIX系统而言相对较少。      我们知道,不管是在c++还是在java中,异常都被认为是一种很优雅的处理错误的机制。而如果想在c语

2016-04-10 14:15:40 323

转载 c语言文件操作

文件文件的基本概念  所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。  普通文件是指驻留在磁盘或

2016-04-10 14:14:17 314

原创 HDU1711 KMP

题目大意:模式串匹配问题,用KMP练练手,顺便学习一下。、这里来说一下我对KMP中NEXT数组的理解。NEXT数组是对模式串自身的一个最长公共前缀和后缀的一个匹配过程,比如字符串“abab” ,他的相同前缀和后缀的最大程度是模式串中各个子串 前缀后缀公共元素的最大长度a空空0abab0aba

2016-04-08 10:29:33 250

原创 hiho 1290 2016微软4月笔试 dp

题目大意:给你一个机器人,从左上角走到右下角需要的最少改变格子的次数。格子有.代表空和b代表障碍物组成,可以b变.,也可以.边b。思路:dp[i][j][0]表示当前节点向下走到终点需要的最少改变次数,dp[i][j][1]表示当前节点向右走走到终点的最少改变次数。那么如果当前点需要向右走,就需要判断右面点的dp值哪一个更小,1、如果需要转弯则需要再往右判断一位,如果是b或边界则 

2016-04-07 21:49:00 296

原创 单链表的插入删除

#include #include #include #include #include #include using namespace std;class node{public : int val; node *next;};void add(int val , node *head){ node *p ; p = head; while

2016-04-05 21:05:21 247

原创 HDU5656 所有子集GCD和

题目大意:给你一个集合,求所有子集的gcd之和。所有数据均小于等于1000,集合数量小于等于1000.结果对1e8+7取模思路:我们考虑记f[i]表示从这些数中选择若干个数,使得他们的gcd是i的倍数的方案数。假如有K个数是i的倍数,则f[i]=2^K-1,再用g[i]表示从这些数中选择若干个数,使得他们的gcd是i的方案数,则g[i]=f[i] - g[j] (对于所有j是i

2016-04-04 16:11:24 1232

原创 OpenFileDialog Filter

System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog(); dlg.AutoUpgradeEnabled = false; dlg.Filter = "(*.jpg,*.png,*.jpeg,*.bmp,*.gif)|*.jgp;*.png;

2016-04-02 10:55:27 744

原创 概率dp

题目:将一个数每次除以它的因子,求除到1的期望 思路:dp[1]=0;dp[i] = (dp[i] + sum(dp[j])(所有因子dp和)+ sum(因子个数和)+1)/sum(因子个数);#include #include #include #include #include #include #include #include #include #

2016-04-01 10:57:51 316

原创 区间DP 矩阵相乘复杂度计算

题目:一个 a*b的矩阵与一个b*c的矩阵相乘,复杂度是 a*b*c,会得到一个a*c的矩阵。但是!!!我出题目的时候懵逼了!!!!!,复杂度弄成a*b*b*c了,所以你们就按我的来。现在有N个矩阵连乘,不同的计算顺序复杂度是不一样的,求最小复杂度。a*b的矩阵与一个b*c的矩阵相乘,复杂度是a*b*b*c!!!!!Input 首先是一个N(N在10

2016-04-01 10:10:10 1987

cug2015ACM集训数学进阶部分题解

ACM数学进阶题解 ,思路很好。保存起来,方便以后使用

2015-07-17

空空如也

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

TA关注的人

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