- 博客(20)
- 资源 (1)
- 收藏
- 关注
原创 TLU3753
<br />没啥好说的水题,但不知道为什么int可以long long型却PE?????<br /> <br />#include<iostream><br />#include<stdio.h><br />#include<cmath><br />using namespace std;<br />int N,M;<br />char name[10005][35];<br />int binary[35][10];<br />double bar[10];<br />char p[35];<br />i
2010-10-31 21:21:00 393
原创 hdu3076
<br />今天比赛就看了这题!!!一直超时!!!<br />解题报告是这么说的:<br /> <br />暂时没发现规律吧,那就按部就班的做吧,先把每个值算出来保存起来,然后就是单纯<br />的区间最小值问题,但是n 比较大,用线段树的话肯定超时,RMQ 的话空间存不下,那就<br />用单调队列吧。平摊时间复杂度是O(n)。其他没有需要注意的地方(不要以为有什么数论<br />结论)。<br />学了一下单调队列;<br />主要是处理动态规划的;<br />资料:<br /> <br />http:
2010-10-30 21:20:00 754
原创 poj 3253
<br />哈夫曼型的贪心<br /> <br />#include<iostream><br />#include<algorithm><br />#include<queue><br />#include<stdio.h><br />using namespace std;<br />int plank[20005];<br />priority_queue< long long,vector<long long>,greater<long long> > q;<br />int main()<br /
2010-10-30 21:06:00 4249
原创 C++ STL 容器技术 之 deque双端队列容器(很全面)
<br />简介:<br />deque双端队列容器(double-ended queue)与vector非常相似,算法的时间复杂度也是常数阶O(1),deque内部的数据机制和执行性能与vector不同,一般说来,当考虑到容器元素的内存分配策略和操作的性能时,deque相对vector较为有优势。deque双端队列采用分块的线性结构来存储数据,具有高效的删除首尾元素的函数,由于deque容器是以deque块为单位进行内存的分配,并使用了二级的Map进行管理,因此不容易实现类似于vector的capacit
2010-10-30 20:59:00 901
转载 STL容器中deque、map和multiset用法
STL容器中deque、map和multiset用法(2009-04-17 14:57:34)转载标签:stl容器dequemapmultisetit分类:C/C++笔记deque的基本操作一、原型与构造函数typedef deque<T, allocator<T> > deqObj;构造函数deque();deque(al);deque(n);deque(n,x);deque(n,x,al);deque(first,last);deque(first,last,al);二、操作1.resize & cle
2010-10-28 20:20:00 850
转载 Catalan数
<br />下面的连接是catalan数详细解释和应用!!!!<br /> <br />http://apps.hi.baidu.com/share/detail/17382175<br /> <br /> <br /> <br /> Catalan数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。 <br /> 原理: <br /> 令h(0)=1,h(1)=1,catalan数满足递归式: <br />h(n)= h(0)*h(n
2010-10-26 21:51:00 531
原创 归并算法模板(详见算法入门经典p143)
<br /> <br />分治的思想很重要!!!<br />二分,三分,贪心等就是他的派生!!!他能将算法降到对数级!!!<br /><br />列于:哈夫曼编码的实现就可用分治的思想!!!<br /> <br />#include<iostream><br />#include<stdio.h><br />using namespace std;<br />int N;<br />int A[1000];<br />int assist_arry[1000];<br />void merge_sort(i
2010-10-26 20:02:00 436
原创 (集合上的动态规划)最有矩阵链乘模板!!!!
<br /> <br /> //还没想出来怎样输出加了括号后结果??????<br /> <br />#include<iostream><br />#include<stdio.h><br />using namespace std;<br />const int N=3;//N为矩阵个数<br />int p[N+1];//p[i]表示矩阵维数从0到N,<br />int m[N+1][N+1];//min[i][j]用递推法时记录A[i]*....a[j]的最优计算次数<br />int s[N+1]
2010-10-26 18:43:00 496
原创 poj 1200
<br />字符串hash第一题;#include<iostream>#include<stdio.h>#include<string.h>#define M 100000000using namespace std;char s[M];int p[M];bool hash[5*M];int main(){ int N,NC; while(scanf("%d%d",&N,&NC)==2) { // memset(p,0,sizeof(p));
2010-10-23 14:23:00 448
原创 hdu2222
AC自动机处理多窜匹配的题!!!可以当模板用!!!详细资料见 :(相当的好)http://wenku.baidu.com/view/f1016624ccbff121dd3683ad.html#include#include#includeusing namespace std;int N;char keyword[50];char str[1000005];struct node{ node *fail; node *next[26]; int
2010-10-21 22:28:00 1223
原创 poj 3461
1 void KMP_next(char b[], int pre[]) {2 int n = (int)strlen(b), k;3 pre[0] = -1; k = -1;4 for(int i = 1; i -1 && b[k+1] != b[i]) k = pre[k];6 if(b[k+1] == b[i]) k++;7 pre[i] = k;8 }9 } 1 void KMP_next(
2010-10-18 20:41:00 513
原创 hdu 1251
字典树!!!题目代码后后是模板!!!#include#include#include#define MAX 26using namespace std;struct trie{ trie* next[MAX]; int v; };int main(){ char s1[15]; trie *root=(trie*)new(trie); for(int i=0;inext[i]=NULL; while(1) {
2010-10-17 22:14:00 536
原创 hdoj 2048 和2049
<br />其实递推式求错排数比通项求更简单!!!<br />递推求法 :<br />a[1]=0;a[2]=1;<br />for(int i=3;i<N;i++)<br /> a[i]=(n-1)*a[i-2]+a[i-1];<br />错排简单题!!!<br />此题用递推式而不用通项公式更简单,但我还是用的通项!!!<br />#include <iostream><br />#include<cstdio><br />using namespace std;<br />double t[20];<
2010-10-11 21:17:00 633
原创 joj 2693
#include#include#includeusing namespace std;int T,P;long long t[4][4],a[4][4];void fun(int n){ if(n==1) return; fun(n/2); for(int i=1;i1&&T%2) { t[1][1]=((t[1][1]*2%P)+t[1][2]%P)%P; t[2][1]=((t[2][1]*2%P)+t[2][2]%P)%P
2010-10-09 22:17:00 423
转载 code::block快捷键
说明:1)以下需要设置的地方均在Settings->Editor...弹出的对话框中。2)不少命令都可针对当前行或选中的代码块,下文简称当前行或选中块。==日常编辑==• 按住Ctrl滚滚轮,代码的字体会随你心意变大变小,对保护视力特别有好处。• 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。• Ctrl+D可复制当前行或选中块。• Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shif
2010-10-07 16:22:00 1865 1
转载 错排推到!!!
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋错排公式:错排公式目录错排公式的由来递推的方法推导错排公式容斥原理简化公式错排公式的由来 pala提出的问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法? 这个问题推广一下,就是错排问题: n个有序的元素应有n!种不同的排列。如若一个排列式的所有的元素都不在原来的位置上,则称这个排列为错排。递推的方法推导错排公式 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示
2010-10-03 21:48:00 515
原创 poj 1195
<br />二维树状数组简单题,也就是求矩阵连续区间的和!!!<br /> <br /> <br />#include<stdio.h><br />#include<string.h><br />#define S 1025<br />int c[S][S];<br />void update(int x,int y,int add)<br />{<br /> for(int i=x;i<S;i+=i&(-i))<br /> for(int j=y;j<S;j+=j&(-j))<br /> c[i][
2010-10-03 21:10:00 406
原创 树状数组模板
我们也不难发现,这个k就是该节点在树中的高度,因而这个树的高度不会超过logn。 所以,当我们修改A[i]的值时,可以从C[i]往根节点一路上溯,调整这条路上的所有C[]即可, 这个操作的复杂度在最坏情况下就是树的高度即O(logn)。 另外,对于求数列的前n项和,只需找到n以前的所有最大子树,把其根节点的C加起来即可。 不难发现,这些子树的数目是n在二进制时1的个数,或者说是把n展开成2的幂方和时的项数, 因此,
2010-10-03 12:43:00 586
原创 poj 2352
学习了线段树之后,今天开始学习树状数组,还有很多不明白的地方,在几位同学的帮助下,基本达到了,虽然不懂,但这道入门题还是能AC的。。。。。。还得在今后的学习中进一步加强对线段树和树状数组的理解和运用!!!#include #include #define M 32005 int c[M]; int ans[M]; int getsum(int k) { int t=0; while(k>0) { t+=c[k]; k-=k&(-k); } return t; } void change(int k,int
2010-10-02 21:02:00 344
转载 hdoj 3641
#include#include#define N 105__int64 prim[N];int c[N];__int64 pp[N];int k;int index;void fun(){ int i,j; k=0; for(i=0;i c[i]=1; for(i=2;i for(j=i+i;j c[j]=0; prim[k++]=2; for(i=3;i if(c[i]) prim[k++]=i;}__int64 merge(__int64 n,__int64 m)// 数论知识,求n
2010-10-01 23:08:00 341
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人