- 博客(7)
- 收藏
- 关注
原创 分块算法学习记录
分块算法其实很神奇,就是把一个数列划分为sqrtN块,然后暴力就会得到意想不到的速度。 HNOI 2010 BZOJ 2002 弹飞绵羊 其实分块的真的没什么可讲的code: #include #include #include #include #include using namespace std; struct hp{ int step,next; }a[200001]; int
2015-03-29 20:31:41 725
原创 【AHOI 2013】【BZOJ 3236】作业
莫队+树状数组+读入优化 75s+AC(PS:我居然先写的线段树)code: #include #include #include #include #include #define mid (l+r)/2 #define lch i<<1,l,mid #define rch i<<1|1,mid+1,r using namespace std; char * p=(char *)malloc(
2015-03-29 13:51:38 627
原创 【BZOJ 2038】【2009 国家集训队】小Z的袜子
分块算法 我还是感觉我的分块怪怪的,我把左端点按所在块排序,相同时按右端点排序(均为升序),然后从上一个区间的答案转移到这个区间的答案。 A过之后,我把左端点按所在块排序变为直接按左端点排序,其余不变,结果T了。。。。。。 哪位神犇能告诉我为什么是这样的,抑或我写的是不是分块,蒟蒻不胜感激 code:#include #include #include #include #include u
2015-03-29 08:11:49 544
原创 CODEVS3550 不一样的根号算法
大家都知道在OI算法当中复杂度大都是O(N)、O(N^2)、O(NlogN)......比较常见,而O(sqrt(n))的复杂度并不常见,只有分块、朝鲜树(似乎并不常用但确实复杂度带根号)但是在某些意想不到的地方,可以使用根号算法,不仅效果不错,还比较好写。 引出我们今天的题目CODEVS 3550,已知序列a_1,a_2,...a_i...,a_n,可以进行单点修改,(输入格式为(0,x,y)
2015-03-28 16:51:54 2072
原创 【BZOJ 3110】【ZJOI 2013】K大数查询
树状数组套线段树+二分答案 code: #include #include #include using namespace std; struct node{ node *l,*r; int size,add; node(){l=r=NULL; size=add=0; } }; node *tree[800000]; int node1[200000],delta[200000],n,m
2015-03-27 21:48:49 607
原创 主席树学习记录
搞了一段时间网络流后,最后还是回到了数据结构。。。 主席树,引fotile主席的一段话: ..这个东西是当初我弱不会划分树的时候写出来替代的一个玩意..被一小撮别有用心的人取了很奇怪的名字> 想法是对原序列的每一个前缀[1..i]建立出一颗线段树维护值域上每个数的出现次数,然后发现这样的树是可以减的,然后就没有然后了 其实是一种比较好理解的数据结构(至少静态查找时是如此),我们对于每
2015-03-18 20:36:45 860 1
原创 最小路径覆盖问题
题目参考 COGS 728【网络流24题】最小路径覆盖问题。。。 大意是给你一个有向图,要求你使每一个点在且仅在一条路径上,如果路径总数最少,则这个方案成为最小路径覆盖。 1、网络流解法 既然是网络流24题,我们首先考虑一下网络流的做法。参考SDOI 星际竞速,我们把每个点拆为两个点,源点向第一排点连边,汇点向第二排点两边,原图中的边由第一排点向第二排点连,跑一遍最大流,点数减去流量maxf
2015-03-15 21:12:04 578
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人