自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDOJ 4578 线段树

关键问题是要同时维护每个节点的三个值,sum【1】一次方,sum【2】二次方,sum【3】三次方,还有个update()维护每次的sum值的改变。然后有个lazy【】标记,既然有lazy标记,就要有pushdown的维护。三种操作,+c,*c,=c,显然=c优先级最高,然后是*c,最后是+c,维护每个节点扣留的操作,需要按照这种顺序。可是写出来wa了4遍。对线段树的理解还是不够透彻。

2013-08-13 12:54:56 623 1

原创 Splay树的基本写法

//node为节点类型,其中ch[0]表示左结点指针,ch[1]表示右节点指针//pre表示指向父亲的指针void Rotate(node *x,int c) //旋转操作,c=0表示左旋,c=1表示右旋{ node *y= x->pre; Push_Down(y), Push_Down(x); //先将Y节点的标记乡下传递(因为Y在上面),再把X的标记向下传递

2013-08-11 17:19:50 511

原创 HDOJ 4651 整数拆分

这题显然是数学题,整数拆分问题,要用到五边形定理。其中,f(n)=求和((-1)^(k-1)*f(n-k*(3*k-1)/2))+求和((-1)^(k-1)*f(n-k*(3*k+1)/2)),其中保证k>=1,且n-k*(3*k-1)/2>=0,n-k*(3*k+1)/2>=0, 并且f(0)=1。关于如何推出这个公式的,我就不清楚了。#include #include #inc

2013-08-10 12:03:40 467

原创 poj 1177 线段树

这题看了好久,先看了陈宏的论文,然后关于测度,连续段数的地方没看明白,后来又找了源代码看,确实自己很难写出来比较简洁的代码,对核心部分还是不够理解。题解:首先离散化,没的说,然后建线段树,要先unique一下y数组,然后根据扫描线,insert,或者remove,并对维护过的点update_m,update_line。最精髓的部分或许是在论文里没有着重提到的如何计算轮廓线,其实只需一次扫描

2013-08-09 12:56:16 525

原创 poj2409 等价类计数问题 polya定理

关于polya定理:n个珠子,t种颜色,手镯的种数:(1)旋转:逆时针旋转i颗珠子的间距,则珠子0,、i、2i、......构成一个循环。这个循环有n/gcd(i,n)个元素。根据对称性,所有循环的长度均相同,因此一共有gcd(i,n)个循环。这些置换的不动点总数为a=t^gcd(i,n) 求和,i从0~n-1。(2)翻转:需要分两种情况讨论。当n为奇数时,对称轴有n条,每条对称轴形成(n

2013-08-02 18:13:40 781 1

原创 poj 2413 高精度加高精度

问题本身比较简单,写个高精加就行。提交忘记删文件操作,却显示超时,郁闷。#include #include #include #include using namespace std;#define N 500#define M 100int fib[N+5][M+5],len[N+5],sum;int a[M+5],b[M+5],la,lb;char s[M+5];v

2013-08-02 14:43:30 529

原创 poj2411 DP压缩

高中就用PASCAL写过,但现在忘了,只记得是2进制状态压缩,却始终想不用如何具体维护两个状态的转移。于是乎,参考了别人的代码,看到一种表示方法是:0表示横向(必然两个0连续),1表示纵向,(另外DP时1特指向下凸,)那么放满一行的state数是有限的,且远小于2^w,如果状态j对应statej可以从状态k推过来,那一定有k& ~statej == 0,(此处注意理解,是关键,若k对应r位上是

2013-08-01 22:44:45 482

空空如也

空空如也

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

TA关注的人

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