自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 月考

【题目描述】在上次的月考中Bugall同学违反了考场纪律还吃了处分,更可气的是在第二天的校会时 间学校就此事做了全校通报. 现已知在当天校会时间有总共N个同学听到了有关Bugall的处分决定.  Bugall同学在铁一有M个朋友,这M个人中有的可能听到了当天的处分决定,有的可能没 有听到,现在Bugall同学想知道他有几个朋友听到了当天的处分通报.【输入格式】第

2016-11-29 23:21:34 335

原创 1526:宗教信仰

查看提交统计提问总时间限制: 5000ms 内存限制: 65536kB描述世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教。你的学校有n名学生(0 输入输入包括多组数据。每组数据的第一行包括n和m,0 输出对于每组数据,先输出它的编号(从1开始),接着输出学生信仰的不同宗教的数目上限。样例输入10 91 21

2016-11-24 21:01:53 543

原创 搜索入门题目

输入文件:dataa.in   输出文件:dataa.out   简单对比时间限制:1 s   内存限制:128 MB【问题描述】现有 n 个学生, 要分成X1 ,X2 ,...,Xm ,共 m 组(m1 ,X2 ,...,Xm 分别表示每组的学生人数),要求对于所有的i i j ,共有多少种分组方案,求出分组方案。【输入格式】输入文件:dataa.in只有

2016-11-22 22:07:10 729 1

原创 主席树

主席树理解:就是对原来的数列[1..n]的每一个前缀[1..i](1≤i≤n)建立一棵线段树,线段树的每一个节点存某个前缀[1..i]中属于区间[L..R]的数一共有多少个(比如根节点是[1..n],一共i个数,sum[root] = i;根节点的左儿子是[1..(L+R)/2],若不大于(L+R)/2的数有x个,那么sum[root.left] = x)。若要查找[i..j]中第k大

2016-08-23 20:17:56 230

原创 离线求lca模板

tarjan离线求 lca ,dfs+并查集 复杂度 n +q int fa[maxn],head[maxn];int qhead[maxn];//询问的链表头 struct node{int to,next,lca;};node edge[maxn],qedge[maxq];//用链表记录询问,加双向,初值k=0bool vist[maxn];int find(i

2016-08-04 11:14:19 229

原创 ac自动机模板

指针版写法:struct node  {      int val;      node *next[26];      node *fail;      node()      {          val = 0;          for(int i = 0; i  26; i++)              next[i] = NULL;

2016-08-04 11:08:51 289

原创 Miller_Rabin大素数测试 与 Pollard_rho整数分解模版

#include cstdio>  #include cstring>  #include cstdlib>  #include algorithm>  using namespace std;  typedef __int64 LL;  const int Times = 20;  LL factor[100], l;  LL gcd(LL a, LL b)  

2016-08-04 10:59:24 310

原创 NOI openjudge 8436:Saving Tang Monk

8436:Saving Tang Monk描述《Journey to theWest》(also 《Monkey》) is one of the Four Great Classical Novelsof Chinese literature. It was writtenby Wu Cheng'en during the Ming Dynasty. In this n

2016-07-31 14:31:43 1259

转载 树状树组完整版

树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。 传统数组(共n个元素)的元素修改和连续元素求和的复杂度分别为O(1)和O(n)。树状数组通过将线性结构转换成伪树状结构(线性结构只能逐个扫描元素,而树状结构可以实现跳跃式扫描),使得修改和求和复杂度均为O(lgn),大大提高了整体效率。给定序列(数列)A,我们设一个数组C满足C[i]

2016-07-31 13:46:29 811

原创 树形转线型

在图论中经常遇到一些很常见的问题,比如一个非常简单的例子,给你一棵树,每一个点都有一个权值,现在动态更新一个点的权值,叫你查询一个点对路径上所有点权的和,这种问题和图论的Tree  Problem非常类似,我们可以利用树形结构转线性结构的方法来处理,我们考虑随便取一个点,比如说1,作为根,这样我们就可以得到一个DFS序列,注意我们维护一个长度为2*N的DFS序列,每次访问开始的时候,向序列中加入一

2015-08-05 08:45:37 560

转载 【DP_树形DP专辑小结】

[+]一常规树形DP二树形背包问题在树上进行分组背包处理三删点或者删边类树形DP这篇文章将会不断更新以后每遇到树形DP我都会整理进这个专题希望大家保持关注 本文ZeroClock原创但可以转载因为我们是兄弟      树,一种十分优美的数据结构,因为它本身就具有的递归性,所以它和子树见能相互传递很多信息,还因为它作为被限制的图在上面可进行的操作更多,所以各种用于不同地方的树

2015-08-05 08:24:40 278

转载 [Hdu 1520] (DP_树形DP) 入门训练

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520题目大意:给定一棵关系树,每个节点有个权值,子节点和父节点不能同时选,问最后能选的最大价值是多少?解题思路:树形DP入门题。由于子节点与父节点不能同时选,有人可能会用贪心思想,二者选其一肯定最优。其实不然,有可能父节点和子节点都不选,而要选子孙节点。不过只要

2015-08-05 08:15:32 296

原创 排序算法实现模版大全

写几个常用的排序:1)冒泡排序2)选择排序3)插入排序4)归并排序5)快速排序6)希尔排序具体实现:1. 冒泡排序[cpp] //冒泡排序//i: start -> end - 1//每一次两两比较array[i]与array[i+1],大的上浮,小下沉//比较次数来源于如果array[0]是最大值,则需要size - 1

2015-07-30 21:59:06 352

原创 状态压缩动态规划入门篇

状态压缩动态规划    动态规划的状态有时候比较难,不容易表示出来,需要用一些编码技术,把状态压缩的用简单的方式表示出来。典型方式:当需要表示一个集合有哪些元素时,往往利用2进制用一个整数表示。    *:一般有个数据 n    *:确定了为状态DP,那么第一步就是预处理,求出每行所有可能的状态了,cnt记录总的状态数,stk[]记录所有的可能状态。以炮兵阵地为例:    *:然后

2015-07-30 21:50:23 345

原创 stl中排序函数详解

首先看sort函数见下表:函数名功能描述sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序 partial_sort对给定区间所有元素部分排partial_sort_copy对给定区间复制并排序nth_element找出给定区间的某个位置对应的元素

2015-07-30 21:27:49 362

转载 状态压缩DP总结【POJ3311】【HDU3001】【POJ2288】【ZOJ4257】【POJ2411】【HDU3681】

【POJ3311】Hie With The Pie【题目大意】类似于TSP问题,只是每个点可以走多次,比经典TSP问题不同的是要先用弗洛伊的预处理一下两两之间的距离。求最短距离。【解析】可以用全排列做,求出一个最短的距离即可。或者用状态压缩DP.用一个二进制数表示城市是否走过【状态表示】dp[state][i]表示到达i点状态为state的最短距离【状态转移方程】dp[state]

2015-07-30 21:16:03 308

原创 【poj】3254corn fields

动态规划本来就很抽象,状态的设定和状态的转移都不好把握,而状态压缩的动态规划解决的就是那种状态很多,不容易用一般的方法表示的动态规划问题,这个就更加的难于把握了。难点在于以下几个方面:状态怎么压缩?压缩后怎么表示?怎么转移?是否具有最优子结构?是否满足后效性?涉及到一些位运算的操作,虽然比较抽象,但本质还是动态规划。找准动态规划几个方面的问题,深刻理解动态规划的原理,开动脑筋思考问题。这才是掌握动

2015-07-30 21:08:45 348

原创 【POJ】 1185 炮兵阵地

对于状态压缩dp这类题目,数据不是很大。比如棋盘类,一般这类题目列会很小10左右,我们需要枚举所有行,对于当前行,其放炮的位置只与上一行和上上行有关,我们记当前行状态和上一行状态便可转移了,dp数组开3维即可。在枚举每一行放炮兵的方法时,可以预处理方便获得所有可能放法。总体复杂度O(Row*70*70*70),70是预处理得到的每一行最多放法,如果不能快速看出来,可以打表观察到最多只有70#i

2015-07-30 21:01:46 269

转载 RMQ的st算法详解

rmq问题--st算法1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。 2.RMQ算法对于该问题,最容易想到的解决方案是遍历,复杂度是O(n

2015-07-30 11:56:15 271

原创 【lca】lca转rmq解法

LCA(a,b)转RMQ就是把从节点a到节点b的这条路径记下来,(用dfs访问变成一维数组,我们称为欧拉序列),询问lca(a,b),就是dfs第一次出现a,b位置 frist[a],frist[b],然后求欧拉序列上面 [ frist[a],frist[b] ] 区间去找深度值最小的那个节点,这个节点的编号对应的节点就是所求的LCA。至于为什么说深度最小的这个节点为所求是因为深度最小这个节点

2015-07-30 11:31:26 639

转载 数据结构---并查集小结

并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。大体分为三个:普通的并查集,带种类的并查集,扩展的并查集(主要是必须指定合并时的父子关系,或者统计一些数据,比如此集合内的元素数目。)  1 #define MAXN 100005 2 int n,m,k,fa[MAXN]; 3 int rank[MAXN]; 4 void

2015-07-30 11:09:37 216

原创 [LCA] tarjan算法 模版

LCA算法:LCA(Least Common Ancestor),顾名思义,是指在一棵树中,距离两个点最近的两者的公共节点。也就是说,在两个点通往根的道路上,肯定会有公共的节点,我们就是要求找到公共的节点中,深度尽量深的点。还可以表示成另一种说法,就是如果把树看成是一个图,这找到这两个点中的最短距离。tarjan算法是离线算法,复杂度为O(n+Q),使用了并查集+dfs的操作。中间

2015-07-30 10:58:44 993

转载 C++模板学习

模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。  模板是一种对类型进行参数化的工具;  通常有两种形式:函数模板和类模板;  函数模板针对仅参数类型不同的函数;  类模板针对仅数据成员和成员函数类型不同的类。  使用模板的目的就是能够让程序员编写与类型无关的代码

2015-07-29 13:31:11 333

空空如也

空空如也

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

TA关注的人

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