自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 hzoi2015(ntt+组合数学)

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

2017-04-01 11:01:15

阅读数 668

评论数 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

阅读数 348

评论数 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

阅读数 371

评论数 0

原创 bzoj3124(树形dp)

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

2017-01-17 09:55:53

阅读数 285

评论数 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

阅读数 329

评论数 0

原创 洛谷 P1268 树的重量()

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

2016-11-16 18:44:58

阅读数 284

评论数 0

原创 bzoj1619(搜索)

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

2016-11-11 19:26:42

阅读数 234

评论数 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

阅读数 391

评论数 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

阅读数 356

评论数 0

原创 bzoj1593(线段树)

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

2016-09-20 19:50:40

阅读数 502

评论数 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

阅读数 340

评论数 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

阅读数 242

评论数 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

阅读数 222

评论数 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

阅读数 178

评论数 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

阅读数 323

评论数 0

原创 bzoj2049(lct)

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

2016-09-16 21:22:16

阅读数 174

评论数 0

原创 bzoj3697(点分治)

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

2016-09-16 13:01:42

阅读数 279

评论数 0

原创 bzoj2152(树形dp或点分治)

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

2016-09-16 09:15:26

阅读数 252

评论数 0

原创 bzoj2599

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

2016-09-15 22:40:07

阅读数 238

评论数 0

原创 vijos1196(博弈论)

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

2016-09-15 10:36:52

阅读数 370

评论数 0

原创 bzoj2388(凸包+分块)

真心好难,代码不好写。 最后算是抄的clairs的代码。 考虑分块,每块维护两个标记ts,tdts,td。 那么对于块中一个位置ii,它的实际值为i×td+ts+vii×td+ts+vi。 修改的时候,对于整块,直接打标记,对于零散的暴力修改,然后重构凸壳,时间复杂度O(n√)O(n)。 查询的时...

2016-09-15 00:35:50

阅读数 395

评论数 0

原创 bzoj1612(dfs)

FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:)。在赛场上,奶牛们按1..N依次编号。每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平不相上下,也就是说,奶牛们的编程能力有明确的排名。 整个比赛被分成了若干轮,每一轮是两头指定编号的奶牛的对决。如果编号为A...

2016-09-13 17:55:57

阅读数 371

评论数 0

原创 bzoj2453/2120(分块)

给出一个数列,求一个区间不相同数字的个数,包含修改操作——最多1000次修改;数字最大是100W   用pre[i]记录前一个和i相同颜色的球的所在位置 询问l到r时,如果pre[i] 利用这种思路我们可以。。。分块 每一块内按pre[i]排序,然后分块做就行了   不过正解是树套树,主流的思路还...

2016-09-11 16:25:45

阅读数 187

评论数 0

原创 bzoj3343(第一道分块)

第1行为两个整数N、Q。Q为问题数与教主的施法数总和。        第2行有N个正整数,第i个数代表第i个英雄的身高。        第3到第Q+2行每行有一个操作: (1)       若第一个字母为“M”,则紧接着有三个数字L、R、W。表示对闭区间 [L, R] 内所有英雄的身高加上W。 (...

2016-09-11 11:31:34

阅读数 197

评论数 0

原创 tyvj模拟赛

待填坑。

2016-09-11 08:50:01

阅读数 898

评论数 2

原创 bzoj1610(代码实现技巧+stl的一点运用)

n个点,求最多有多少个经过两点的直线,他们互相是不平行的。 实际上就是要求有多少个不相同的斜率。 double害怕被卡精度,所以这里通过排序,处理正反相同的情况,再gcd用pair最简比斜率来表示。   主要这里用最简比表示斜率,排序,和pair在这里灵活的使用,方法值得积累。   #...

2016-09-10 22:57:00

阅读数 276

评论数 0

原创 bzoj1609(dp)

f[i][j]表示到第i头牛数字为j的最少修改次数(转移方程详见代码),正反各来一次,计算出所有方案的最小值。   #include #include #include #include #include using namespace std; const int i...

2016-09-10 09:16:54

阅读数 200

评论数 0

原创 bzoj1606(背包)

水。。 背包可行性问题。。 #include #include #include #include #include using namespace std; int n,m; bool b[50050]; int main() { scanf("%d%...

2016-09-09 21:03:15

阅读数 462

评论数 0

原创 BZOJ1603(分点并差集)

Farmer John有一个过时的打谷机(收割小麦),它需要带子来带动。发动机驱动轮1总是顺时针旋转的,用来带动转轮2,转轮2来带动转轮3,等等。一共有n(2   #include #include #include #include #include using namespace...

2016-09-09 20:34:32

阅读数 206

评论数 0

原创 bzoj1602(倍增裸题)

裸倍增。 #include #include #include #include #include using namespace std; const int N=1005; int n,q; int head[N],tot,fa[N][25],dis[N][25],dep[N...

2016-09-09 20:07:47

阅读数 347

评论数 0

原创 bzoj1601(MST+优秀建图==好题)

Farmer John已经决定把水灌到他的n(1   刚开始并没有想到是最小生成树,尽管曾经考虑过,但是感觉无法描述整个题目的所需决策。并没有多想。 实际上,就是每个水库要么选择自己这里建造水库,要么选择连一条边。 我们想如果所有的水库最终都选择好了一个决策的话,那么整个图就是,分成m块,...

2016-09-09 18:54:52

阅读数 611

评论数 0

原创 bzoj1600(排列组合)

勤奋的Farmer John想要建造一个四面的栅栏来关住牛们。他有一块长为n(4   #include #include #include #include #include using namespace std; typedef long long ll; const int...

2016-09-08 19:25:13

阅读数 290

评论数 0

原创 bzoj1648(水)

算回忆一下dfs吧。第7页题好水。。。 #include #include #include #include #include using namespace std; const int N=1005; int n,m,k; int ans[N],a[N]; bool b[...

2016-09-08 19:04:14

阅读数 177

评论数 0

原创 bzoj1901(动态区间第k大,树套树)

表示主席树+树状数组懒得打了,学了树套树水过。。。   线段树套平衡树 #include #include #include #include #include using namespace std; const int N=12005; const int inf=0x3f...

2016-09-08 18:46:22

阅读数 391

评论数 0

原创 二逼平衡树(树套树)

树套树编程技巧。 1.tmp,这个答案的中间变量,便于解题。 2.用splay结构体来写树套树。   #include #include #include #include #include using namespace std; const int N=60005; co...

2016-09-07 20:09:05

阅读数 500

评论数 0

原创 noip复赛准备

先是对历年题目的分析(12年之前) 【动态规划】共15题 此项为历届NOIP考察次数最多的知识点。主要有 1.区间模型 2.子序列模型 3.资源分配模型(多) 以及一些简单的多维状态设计技巧(多)等。NOIP的动态规划,一般不需要多少优化,所以只需要能在题目中找到动态规划的思路即可。 ...

2016-09-06 13:09:46

阅读数 966

评论数 0

原创 poj1511(spfa)

题目大意:给出n个点和n条有向边,求所有点到源点1的最短路之和,加上源点1到所有点的最短路之和。 到其他点的最短路之和,只需要跑最短路就行,这是个有向图,其他点到这个点的最短路和前面的是不一样的。 关于第二问,显然的方法是,每一个点都跑一次最短路。复杂度也是显然不能接受。 很巧妙的是,只要我...

2016-09-04 16:50:16

阅读数 252

评论数 0

原创 poj1236(强连通分量)

POJ1236 一些学校通过网络连接在一起,每个学校手中 有一份名单,即它所指向的点。学校A的名单中 有学校B,并不能保证学校B的名单里有学校A。 现在有一软件。 1.问至少发给几个学校才能保证所有的学校都可 以得到该软件。 2.至少加几条边才能使将软件发给任何一个学校 后,其他所...

2016-09-04 15:35:50

阅读数 205

评论数 0

原创 bzoj1179(缩点+乱搞)

很显然这道就是需要先求出强连通分量,然后缩点。缩点之后就是有向无环图了。实际上这之后,各种方法就都可以了。 已知的dp:1.通过拓扑序用一个队列来进行dp,图是原先的图                   2.缩点后建新图时,将图反向建。然后对于每一个酒吧,记忆话搜索,到市中心的最短路(我用的...

2016-09-04 13:08:10

阅读数 145

评论数 0

原创 c++ random_shuffle()

random_shuflle( a,a+n+1); 生成一个前闭右开区间的随机序列,注意这里序列是需要附初始值的。 并且并不只是数字,字母等也是可以的。   random_shuffle()定义在标准的头文件

2016-09-03 18:35:31

阅读数 1529

评论数 0

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