排序:
默认
按更新时间
按访问量

hzoi2015(ntt+组合数学)

首先,对于行和列我们可以分别考虑,且行列式等价的,那么我们可以考虑将行的方案和列的方案求个卷积。 #include #include #include #include #include using namespace std; typedef long long ll; const i...

2017-04-01 11:01:15

阅读数:527

评论数:0

最大密度子图poj3155

#include #include #include #include #include #include using namespace std; const int N=3105; const int inf=0x3f3f3f3f; const double eps=1e-8; int n,...

2017-01-24 22:20:48

阅读数:253

评论数:0

bzoj2683

自己的方法写的有点长#include #include #include #include #include #include using namespace std; const int N=500005; int n,m; struct query { int x,y,xx,yy; i...

2017-01-24 10:25:35

阅读数:291

评论数:0

bzoj3124(树形dp)

求有多少条边:满足所有直径都经过该边。   两边树形dp,一遍以点做dp求出直径的个数,再以边做dp判断在直径上边的个数。   #include #include #include #include #include using namespace std; const int N=200...

2017-01-17 09:55:53

阅读数:180

评论数:0

tyvj1864(概率dp初步)

#include #include #include #include #include using namespace std; double f[205][205][205]; int n,l,k; struct aa { int a; double p; ...

2016-11-21 21:57:23

阅读数:250

评论数:0

洛谷 P1268 树的重量()

构造法。 锻炼思维的好题,需要运用一些树的性质。以下用g(i,j)表示点i与点j之间的距离。 首先,我们考虑n=2时的情况,很显然答案就是g(1,2)。 接下来考虑n=3时的情况。由于所有点均为叶子节点,很显然点3是从点1到点2的路径上分叉出来的,就像下图。 设蓝色...

2016-11-16 18:44:58

阅读数:226

评论数:0

bzoj1619(搜索)

给出一个二维平面,以及在每一个位置上的高度 求有多少个山顶。(山顶可能大小不为1) 基本思想是,枚举每一个点,然后判断是否是山顶,对于每一个山顶dfs标记所有的相邻的矮的位置。 但是直接从1,1枚举到n,m。会出bug。 关键是需要先按高度排序,从高到矮做才不会有bug!! ...

2016-11-11 19:26:42

阅读数:202

评论数:0

bzoj3585(线段树)

细节好恶心 #include #include #include #include #include using namespace std; const int N=200005; const int inf=0x3f3f3f3f; inline int read() { int ans,f=...

2016-09-22 20:35:15

阅读数:296

评论数:1

bzoj3339(线段树)

这一题在线似乎比较麻烦 至于离线。。 首先按照左端点将询问排序 然后一般可以这样考虑 首先如何得到1-i的sg值呢 这个可以一开始扫一遍完成 接着考虑l-r和l+1-r的答案有何不同 显然是l-next[l]-1这一段所有sg值大于a[l]的变为a[l] 这一步如果暴力修改的话只有30分 但是修改...

2016-09-21 20:11:45

阅读数:246

评论数:0

bzoj1593(线段树)

线段树一种新见的询问方式。 1.询问连续长度为x的空的区间的最左端点,并将这段覆盖 (通过最长子序列来做,先判断左边有没有这样的区间,再判断相连接的地方有没有,再判断右边有没有) 2.区间覆盖为空或有    #include #include #include #include ...

2016-09-20 19:50:40

阅读数:318

评论数:0

bzoj1616(搜索)

随便一搜   #include #include #include #include #include using namespace std; int mp[105][105],n,m,ans,r1,c1,r2,c2,t; char s[105]; bool pan(in...

2016-09-19 19:50:18

阅读数:289

评论数:0

bzoj3038(线段树开根)

开根,直接搞   #include #include #include #include #include using namespace std; typedef long long ll; inline ll read() { ll ans,f=1;char ch; while ((ch=...

2016-09-18 21:08:49

阅读数:177

评论数:0

bzoj3282(lct)

lct模板   感觉这几天的模板写的差不多了。 之后就是上思路了。 #include #include #include #include #include using namespace std; const int N=300005; inline int read() { int ans,...

2016-09-18 19:29:37

阅读数:192

评论数:0

bzoj2631(lct)

lct模板题。 很长时间没有这么错了。。。 #include #include #include #include #include #include using namespace std; const int N=100005; const int mod=51061; typedef uns...

2016-09-17 22:00:31

阅读数:151

评论数:0

bzoj2002(lct)

算是自己做的第一个lct吧。   都是基本操作没有,练摸版了,不过lct当中也是有很多很灵活的地方。   #include #include #include #include #include #include using namespace std; const int N=200005; i...

2016-09-16 23:51:36

阅读数:260

评论数:0

bzoj2049(lct)

连接两个点,断开两个点,询问两个点是否联通。   lct第一道, 基本的access函数,move_to_rt函数,link函数都在里面了,但是cut函数还不是特别理解。 #include #include #include #include #include #include using nam...

2016-09-16 21:22:16

阅读数:142

评论数:0

bzoj3697(点分治)

采药人的药田是一个树状结构,每条路径上都种植着同种药材。 采药人以自己对药材独到的见解,对每种药材进行了分类。大致分为两类,一种是阴性的,一种是阳性的。 采药人每天都要进行采药活动。他选择的路径是很有讲究的,他认为阴阳平衡是很重要的,所以他走的一定是两种药材数目相等的路径。采药工作是很辛苦的,所以...

2016-09-16 13:01:42

阅读数:242

评论数:0

bzoj2152(树形dp或点分治)

算是点分治模板题。 用的一位神奔的模板,思路还是很清晰的。 不过这道题状态数(余数)只有0,1,2,所以其实树形dp就能搞,并且复杂度还低。算是点分治练手了。 #include #include #include #include #include using namespace std; ...

2016-09-16 09:15:26

阅读数:180

评论数:0

bzoj2599

第一道点分治。 给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小.   开一个100W的数组t,t[i]表示权值为i的路径最少边数 找到重心分成若干子树后, 得出一棵子树的所有点到根的权值和x,到根a条边,用t[k-x]+a更新答案,全部查询完后 然后再用所有a更新t[x]...

2016-09-15 22:40:07

阅读数:200

评论数:0

vijos1196(博弈论)

桌子上放着两堆糖果,Matrix67和Shadow轮流对这些糖果进行操作。在每一次操作中,操作者需要吃掉其中一堆糖果,并且把另一堆糖果分成两堆(可以不相等)留给对方操作。游戏如此进行下去,糖果数会越来越少,最后必将出现这样一种情况:某人吃掉一堆糖果后发现另一堆里只剩一块糖果不能再分了。游戏规定此时...

2016-09-15 10:36:52

阅读数:221

评论数:0

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