自定义博客皮肤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)
  • 收藏
  • 关注

原创 Python 实例方法 类方法 静态方法 (instance method, class method, static method )

首先看一个简单的python 代码class T(object): name = "Alice" #类变量 def __init__(self): self.name = "Bob" #实例变量 def foo(self): print "instance fun, name: %s"%(self.name) @classmethod

2017-09-28 15:51:33 1405

原创 div 2 199 D 状态压缩dp 轮廓线很好写

div 2 199 D 状态压缩dp 轮廓线很好写

2013-11-05 22:56:43 1648 2

原创 poj 2411 状态压缩dp+轮廓线

poj 2411 状态压缩dp+轮廓线

2013-11-05 21:01:24 1135

原创 hdu 3966 Aragorn's Story 树链路剖分 区间更新点查询

hdu 3966 Aragorn's Story 树链路剖分 区间更新点查询

2013-10-29 21:30:33 930

原创 bzoj 1036 树的统计Count 点权值模板

bzoj 1036 树的统计Count 点权值模板

2013-10-29 20:17:08 913

原创 spoj 375 Query on a tree 链路剖分模板

spoj 375 Query on a tree 链路剖分模板

2013-10-29 19:30:31 897

原创 hdu 4679 树形dp

hdu 4679 树形dp

2013-10-28 18:09:26 938

原创 poj 3659 树形dp 最小支配集

poj 3659 树形dp 最小支配集

2013-10-25 21:36:28 1070

原创 poj 1463 树形dp 最小点覆盖

poj 1463 树形dp 最小点覆盖

2013-10-25 20:13:24 1002

原创 poj 3342 树形dp_最大独立集合

poj 3342 树形dp_最大独立集合

2013-10-25 17:24:08 1022

原创 hdu 4758 ac自动机+dp

hdu 4758 ac自动机+dp

2013-10-24 08:31:24 1039

原创 hdu 2222 裸的AC自动机静态模板

hdu 2222 裸的AC自动机静态数组模板

2013-10-22 20:59:08 1068

原创 mark_

一向认识数学的东西很厉害。。。。但是很有趣,。,。,。,

2013-10-10 08:43:52 757

原创 spoj AMR11 Robbing Gringotts 双边暴力+hash+费用流

spoj AMR11 Robbing Gringotts 双边暴力+hash+费用流

2013-10-03 23:07:29 1547

原创 zoj 3631 Watashi's BG 双向暴力搜素

zoj 3631 Watashi's BG 双向暴力搜素

2013-10-03 21:17:55 1163

转载 转一下大神的字符hash,

看到了一种hash到long long 在sort 的unique 的方法,恨nice 沾上大神代码const int MAXN = 1000003;//常用 11 SDBMHashunsigned int SDBMHash(char *str){ unsigned int hash = 0; while (*str) { // equi

2013-09-30 21:31:10 947

原创 mark 有懈怠了很久,但是有充满了激情

mark

2013-09-30 21:24:44 917 1

原创 小哀

2013-09-26 23:39:21 1212

原创 hdu 4750 Count The Pairs 并查集+离线

我们对于边来按权值的大小升序排序,然后我们来考虑现有的一边E (u,v,cost),如果u,v.1,如果u,v 属于一个集合,那么这个边没有任何用处,因为集合内部的边可通过小于cost边联通,对于集合外面的点,会通过比cost大的边联通(还没加进来)。2,如果,u,v 不属于一个集合,那么A集合可通过E_cost边到达B集合,所以这条边能加pair 是add=num[u] *num[v],

2013-09-21 18:12:51 1452

原创 归并排序,逆序数

写了个模板类,指针 a为被排序,b为tmp 返回逆序数#define ll long longtemplateclass Merge {public: T *a,*b; int n; ll num; ll sort(T *a1,T *b1,int n1){ a=a1;b=b1;n=n1; num=0; d

2013-09-20 10:25:44 1346

原创 bzoj 2599 Race树的分治

划分字树,在更新mark的时候要反过来更新回去,很裸的,但是我想了很久,学了大神一招,就是bfs 来find_root#include#include#define inf 0x3f3f3f3f#define M 200020struct G{ int head[M],en; struct E{ int u,v,cost,next,flag; }

2013-09-19 09:43:44 1001

原创 cf div2_199_E

题目的意思是给你一颗树n(100000)个树的几点,然后开始树都是白色的,根的颜色是红色的,然后给你m个操作,1  x操作表示把x这个点变成红色,2 x询问x到最近红色点的距离,我听闻有3种解法解法1 对于m(100000)个询问分成sqrt(m) 块,然后在每个块内,如果是更改操作,把相应点放入临时数组,对于查询,先看原图最小距离,和临时数组里面点的最小值(通过lca 处理)对于每个块之

2013-09-18 08:17:50 1312 6

原创 hdu 4738 Caocao's Bridges 割边无敌(trick)

比赛的时候一直没有做出来,后面看了wrong了40++ 其实这个题目trick 在于如果有一条权值为0的割边,你至少要派一个人去,这个就是全部了。。唉。。就看了一体还没做出555555#include#include#include#define M 1080#define inf 0x3f3f3f3fusing namespace std;struct G{ int he

2013-09-15 18:48:37 1213

原创 hdu 4733 G(x) 状态dp

这是个状态DP 首先我们设p的的二进制为 a1  a2 a3 a4 a5 a6 明显[p/2] 为 0 a1 a2 a3 a4 a5 然后我们设a3为p第一个为0的位数那么p就是a1 a2 0 1 1 [p/2]= 为 0 a1 a2 01 明显g(x) 为 a1 a2^a1 a2 1 0 0 明显p+1 的二进制为 a1 a2 1 0 0 ,[p+1/2]为 0 a1 a2 1 0   g(

2013-09-15 11:08:00 1845 2

原创 hdu 4737 线段树维护+二分

线段树维护从i到j 或的值,然后对于每一个i 二分最大j (满足单调性)  i-j 所有小于m 总复杂度为(n*log(n)*log*(n))#include #include #include #define ll int#define lson i<<1#define rson i<<1|1using namespace std;ll const M = 100000+9;

2013-09-14 23:19:14 1040 3

原创 hdu 4734 数位dp

刚好近来学了数位dp刚好用上了,nice 用dp[i][j][k] 表示第i位用j时f(x)=k的时候的个数,然后需要预处理下,然后就很容易想了 dp[i+1][j][k+(1#include#include#define M 7000int dp[12][12][M];int tsum[12][12][M];void init(){ memset(dp,0,sizeof

2013-09-14 17:52:22 1276

原创 hdu 4722 good number 数位dp入门

明显dp[i][j][k] 表示i为取j的时候余数为k的个数 然后dp方程就显然可得了,我看其他人都是2位,少了j这个位,但是我认为有这位比较清楚啊,贴上代码#include#include#define M 25#define ll __int64ll dp[M][10][10];void init(){ memset(dp,0,sizeof(dp)); dp[0]

2013-09-12 18:00:09 1045

原创 数位dp 入门 nbut 1475

nbut 1475用dp[i][j][k]  表示滴i位时取j是已经有k个1 这样状态就很容易表示了if(j==1) dp[i][j][k]=dp[i][0-9][k-1];else dp[i][j][k]=dp[i][0-9][k];统计的时候注意前面有个几个1;小心最大整数#include#include#include#define M 12#define ll

2013-09-12 10:56:57 872

原创 hdu 2089 不要62

基础数位dp 用dp[i][j] 表示滴i个数时以j结尾所应该统计的个数 明显每次递推的时候特殊考虑 4 和 6  2 但是在统计的时候需要注意前面是否有4 和62 来防止计算了。第一个数位#include#include#define M 10int dp[M][M];using namespace std;void init(){ dp[0][0]=1; for(in

2013-09-12 10:46:57 1015

原创 hdu 4725 (spfa+建图) 明显要求最短路

如果按照自己建图点个数为(N^2) 明显这个复杂度是不行的,过后,可以把每一层分成上个层进入点,和到下层的进入点,只需要把某一个边变成C就可以了,比赛的时候收惨写了2个u 到 v 没写v 到u 结果wrong了一下午,后面发现有些层没点,但是自己的代码考虑到了,晚上才ac哎,#include#include#include#include#define inf 0x3f3f3f3f#de

2013-09-11 22:39:52 1644

原创 hdu 4712 2种解发(状态dp| 随机化) 我又相信爱情了~~(第一发)

这个题目我们省赛的时候就已经做看过一次,但是那时候知道你n^2 一定是超时的,然后就gg了,这次在warm up上是发现了状态dp 然后估计了下复杂度大概是(2^20*20吧,然后就开始写了后面发现只向后面推冒失得不到答案,然后果断机智选择spfa的能向前个状态,然后发现这个时间是硬伤,第一组数据差不多2s才出来。这能交嘛?然后自己yy出向后退也可以,但是要记录每一个点最短和次短长度,对于已经有点

2013-09-10 16:16:48 1075

空空如也

空空如也

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

TA关注的人

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