自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 莫比乌斯反演

莫比乌斯反演大都是处理(运用这个式子的题目始终没见过,见过了再说)和(最常用的公式) ,说白了莫比乌斯反演就是加快和简化容斥集合的演算的作用,在数论中比较重要。 莫比乌斯反演的比较重要的性质: 对于u(d):  (1)若,那么  (2)若,均为互异素数,那么  (3)其它情况下 还有如下一些性质: (1)对任意正整数有

2015-07-30 10:27:34 504

原创 树型dp入门小节

做了几道树型dp的入门题,稍微总结一下 hdu1520:http://acm.hdu.edu.cn/showproblem.php?pid=1520(入门) 题意:每个人有一些活跃值,员工和上司关系组成一棵树,树上如果父亲来了,向下相邻的儿子就来不了,问最大的活跃值总和(题意略坑,可能不止一棵树) 用dp[i][0]表示当前点没来的最大值,dp[i][1]表示当前点来了的最大

2015-07-27 18:21:06 342

原创 最小费用最大流模板

typedef long long ll; const int maxn = 1000005; const int INF = 0x3f3f3f3f; const int e_maxn = 200000 * 4; const int v_maxn = 15000; struct ppp { int v,nex,cap,flow,c; }e[e_maxn]; int head[v_maxn],pr

2015-07-27 13:53:36 330

原创 最大流模板

#include #define mem(a,b) memset(a,b,sizeof(a)) #define For(a,b,c) for(int a = b;a <= c;a++) using namespace std; typedef long long ll; const int maxn = 1000005; const int INF = 0x3f3f3f3f; const int

2015-07-27 10:08:14 320

原创 线性筛选素数(欧拉筛选)

bool ok[maxn];//自然数表 int prime[maxn];//素数数组 int tol;//素数长度 void make_prime() { tol = 0; for(int i = 2;i < maxn;i++){ if(!ok[i])prime[tol++] = i; for(int j = 0;j < tol;j++){ if(i * prime[j] >=

2015-07-26 09:48:32 501

原创 单调队列--优化dp

单调队列的定义:一种严格单调的队列(严格递增或者递减),其中队列中元素的位置也有一定的递增递减的性质。队首位置保存的是最优解,接着次优解。。 单调队列的维护(假设队列为严格递增队列): 1.新插入一个数到队尾(此时还没有插入),比较当前队尾的数和当前插入的数,如果当前插入的数小于队尾的数,弹出队尾的数。。。继续比较队尾的数和当前插入的数,直到队尾的数小于当前插入的数为止,在队尾插入当前

2015-07-24 18:41:50 413

原创 LCA(最近公共祖先) 离线法(tarjan算法)

题目的来源是hiho题库的1067 http://hihocoder.com/problemset/problem/1067 具体做法: dfs整棵树,对与每个节点进入的时候先标记为1,退出该节点的时候将该节点标记为2,没被扫描过的标记为0 由此可知,对于扫到的某个点在询问中要求它和另外一个点的最近公共祖先. 如果另外一个点的标记为0,说明没有被扫描到过,那么继续搜索. 如

2015-07-22 19:20:44 370

原创 st函数--区间最大最小值

st函数可以处理区间的最大和最小值的问题,预处理时间需要O(nlgn)的时间,查询时间可以达到O(1)。 void make_st()//st预处理 { for(int i = 1;i <= n;i++){ minn[i][0] = ori[i]; maxx[i][0] = ori[i]; } for(int j = 1;(1 << j) <= n;j++)//递推求区间最

2015-07-21 20:28:30 1130

转载 反素数的总结

反素数的定义:对于任何正整数,其约数个数记为,例如,如果某个正整数满足:对任意的正整             数,都有,那么称为反素数。   从反素数的定义中可以看出两个性质:   (1)一个反素数的所有质因子必然是从2开始的连续若干个质数,因为反素数是保证约数个数为的这个数尽量小 (2)同样的道理,如果,那么必有

2015-07-21 10:54:21 342

原创 凸包模板

struct Node {     int x,y;     Node(int _x = 0,int _y = 0):x(_x),y(_y){}     bool operator         return x == b.x ? y     }     Node operator - (Node b){         return     Node(x - b.x,y -

2015-07-14 18:29:00 253

空空如也

空空如也

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

TA关注的人

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