自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雯舞

Love three things int he world -- Manchery

  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 [主席树] BZOJ 1803 Spoj1487 Query on a tree III

裸题 dfs序好了#include#include#include#include#define V G[p].vusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,std

2016-05-13 16:20:17 520

原创 [主席树套堆 区间修改 标记永久化] BZOJ 3489 A simple rmq problem

“因为是OJ上的题,就简单点好了。” Orz看看贴吧吧:http://tieba.baidu.com/p/2947256742#47989538012l记一下next 从左到右 删了之前的标记 再从这个点到next-1都打标记 然后就可以查询了按一个坐标离线做强制转在线么 用主席树好了 第一次打主席树区间修改 空间两个log 不过这个的前提是标记永久化 不然就是n2了

2016-05-13 16:17:40 1204

原创 [二分答案 物理 数学] BZOJ 3695 滑行

一直知道OI会出数学题 没想到还有物理题 物理差成渣什么光路最速原理折射角sin之比等于速度比什么的知道这个然后二分答案就好了#include#include#include#define PI acos(-1.0)#define eps 1e-12using namespace std;inline char nc(){ static char

2016-05-08 12:59:26 610

原创 [CDQ分治 并查集 || 随机化权值Xor] BZOJ 3237 [Ahoi2013]连通图

考虑CDQ分治 把这半边对后半边没有影响的操作做了 然后分治用并查集维护 开个栈暴力还原#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,s

2016-05-08 12:56:31 911

原创 [乱搞 树状数组] BZOJ 4548 小奇的糖果 && BZOJ 3658 Jabberwocky

跟悬线法有点像#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread

2016-05-08 12:53:55 935

原创 [Bfs 乱搞] BZOJ 3137 [Baltic2013]tracks

跟省选day2讲的一道题好像...#include#include#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,std

2016-05-08 12:51:12 716

原创 [DP 矩阵快速幂] BZOJ 1875 [SDOI2009]HH去散步

一个DP用矩阵快速幂加速然后这个DP状态比较巧妙 以边作状态#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (

2016-05-08 12:47:59 456

原创 [线性规划 对偶原理 单纯形] BZOJ 3265 志愿者招募加强版

就是个裸题了#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2

2016-05-08 12:44:59 689

原创 [线段树优化建图最短路 bfs] BZOJ 3073 [Pa2011]Journeys

CA爷的题解:http://blog.csdn.net/CreationAugust/article/details/50739132#include#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1=

2016-05-08 12:41:53 1096

原创 [暴力] BZOJ 3917 [Baltic2014]sequence

学习波罗的海小哥的做法,复杂度好虚:http://www.boi2014.lmio.lt/tasks.html据说是KlogK的 还有O(K)的做法#include#include#includeusing namespace std;typedef long long ll;const ll NIL=102345678900000LL;const int MAX

2016-05-04 21:29:27 1050

原创 [线段树 中位数] BZOJ 4071 [Apio2015]巴邻旁之桥

首先如果办公室和家在同一侧,直接将距离加到答案中即可。如果办公室和家不在同一侧对于k=1,显然只需要将桥建在所有位置的中位数即可。对于k=2,可以发现每个人都会选择距离家和办公室中点较近的桥行走。那么我们就可以按照家和办公室中点将每个人排序,枚举分割点,将分割点前后的人分别处理。在权值线段树上二分求中位数#include#include#includeusing na

2016-05-04 21:24:58 1295

原创 [贪心 DP] BZOJ 4069 [Apio2015]巴厘岛的雕塑

从高位到低位题目里面数据分两类一类是A>1,dp一下f[i][j]这段区间是否符合当前答案,n3log;第二类是A=1,dp一下g[i]表示在满足答案前提下以i为结尾切开来最少能且多少段,n2log。#include#include#includeusing namespace std;typedef long long ll;inline char nc(

2016-05-04 21:22:50 568

原创 [SPFA 分块建图] BZOJ 4070 [Apio2015]雅加达的摩天楼

最坏情况有n^2条边,一般最短路算法都不能过。考虑用分块的思想来优化建图。Pi>sqrt(n),暴力加入每一条边,每次最多sqrt(n)条边。Pi≤sqrt(n),对于每个点添加sqrt(n)个辅助点,一层一层走,边数是O(n*sqrt(n))的。总边数和总点数都是O(n*sqrt(n))。块不能太大 不然爆内存 块最大100#include#include#i

2016-05-04 13:40:57 684

原创 [贪心] BZOJ 2811 [Apio2012]Guard

好恶心的贪心大概就是先把不可能有的去掉然后把区间合并 有包含的大区间去掉如果只剩K个空 输出 结束剩下区间扫一遍 如果一个区间内只剩一个空 删掉这个空 加入答案然后对于每个位置 如果让它不放 覆盖剩余区间所需的个数如果大于K 这个空必选*对于覆盖前t个区间至少要几个可以用DP#include#include#includeusing namespace s

2016-05-04 13:37:42 562

原创 [可并堆 中位数] BZOJ 1367 [Baltic2004]sequence

结论见论文:http://wenku.baidu.com/link?url=t55yGX-UkUdEXBhpvBwuzjKP16F7lFl0RKSVVBBW5zXWRB7rRXvLLj1jM-pzhbH834hQl0KKT4va247VmSepsGDSrYF1E3le_WpnKc2xfCi可并堆维护中位数 当size>tot/2+1时弹出堆顶最大值把递增化为不降 只需减个下标即可

2016-05-02 21:22:19 725

原创 [数论 博弈论] BZOJ 4147 [AMPPZ2014]Euclidean Nim

大搬运术:http://blog.csdn.net/PoPoQQQ/article/details/46549901#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)

2016-05-02 21:18:55 344

原创 [A* k短路] BZOJ 1975 [Sdoi2010]魔法猪学院

就是求前k短路的权值和据说卡STL的priority_queue 那么我用STL的heap好了#include#include#include#include#define cl(x) memset(x,0,sizeof(x))#define V G[p].vusing namespace std;const int M=200005;const int N=50

2016-05-02 21:16:10 483

原创 [A* K短路 || 可持久化堆] POJ 2449 Remmarguts' Date

这就是裸的k短路了 学习一发A*的姿势:http://yzmduncan.iteye.com/blog/1162759这个S==T的坑要注意#include#include#include#include#include#define V G[p].vusing namespace std;inline char nc(){ static char buf[

2016-05-02 21:12:45 566

原创 [Hash 倍增Floyd] BZOJ 2085 [Poi2010]Hamsters

Po姐的题解:http://blog.csdn.net/popoqqq/article/details/44077515搬运下复杂度分析吧这不会T?首先设第i个字符串的长度为ai,设k=Σai易知当计算f[i][j]时的复杂度是O(min(ai,aj))那么现在的问题就是当k固定时,最大化ΣΣmin(ai,aj)我们将所有的ai排个序,容易发

2016-05-02 21:07:55 449

原创 [倍增Floyd] BZOJ 1706 [usaco2007 Nov]relays 奶牛接力跑

题目大意:求s到t 长度为n 的最短路裸的倍增Floyd#include#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,10

2016-05-02 21:05:40 714

原创 [期望 生成函数 卷积 导数] BZOJ 4001 [TJOI2015]概率论

题解:http://blog.miskcoo.com/2015/04/bzoj-4001公式恐惧症main(n){scanf("%d",&n);printf("%.9lf\n",(double)n*(n+1)/(2*n-1)/2);}

2016-05-02 14:48:51 1322

原创 [贪心 堆 链表] BZOJ 3502 PA2012 Tanie linie & 51Nod 1052 最大M子段和

做法同2280 1150多年前的代码丑#include#include#include#includeusing namespace std;typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf

2016-05-02 13:53:44 587

原创 [CDQ分治 并查集 || LCT] BZOJ 4025 二分图

Po姐的姿势:http://blog.csdn.net/popoqqq/article/details/45671813LCT的做法:考虑随便维护一个图的生成树,不难发现,如果一条边加入后,形成奇环的话就不是二分图否则的话,我们可以无视这条边,因为如果之后再新加入一条边和这条边形成了一个奇环那么新加入的边一定和原来生成树上的边也能形成奇环所以我们直接维护一棵生成树即

2016-05-02 13:36:57 556

原创 [费用流手动增广 线段树] BZOJ 3267 KC采花 && 3272 Zgg吃东西 && 3638 Cf172 k-Maximum Subsequence Sum

费用流构图发现这个图比较特殊,可以手动增广就是选择一个最大和子串,然后全部取反线段树实现#include#include#includeusing namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=bu

2016-05-02 13:31:05 988

原创 [贪心] BZOJ 2697 特技飞行

贪心地,每次把最大的放在两端#include#include#include#includeusing namespace std;typedef long long ll;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,

2016-05-02 13:28:02 311

原创 [平衡树 启发式合并] BZOJ 1483 [HNOI2009]梦幻布丁

用set水过的搬运下黄学长的复杂度分析吧,很有道理啊每次我们把短的合并到长的上面去,O(短的长度)咋看之下没有多大区别,下面让我们看看均摊的情况:1:每次O(N)2:每次合并后,队列长度一定大于等于原来短的长度的两倍。这样相当于每次合并都会让短的长度扩大一倍以上,最多扩大logN次,所以总复杂度O(NlogN),每次O(logN)。

2016-05-02 13:26:36 761

空空如也

空空如也

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

TA关注的人

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