自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

转载 poj2449

k短路a*,其实我一直不认为这个叫a*,,,这种明确的东西也算估价函数?#include #include #include #include #include #define MAXN 1005#define MAXM 500005#define INF 1000000000using namespace std;struct node{ int v,

2016-06-30 19:49:55 193

原创 线段树插队。。题目有点忘了、、

#include#includeusing namespace std;int a[200005];int pos[200005];int tree[600005];int n,L,R;void build(int node,int tl,int tr){ tree[node]=tr-tl+1; if(tl==tr) return ;  int mid=(t

2016-06-29 22:40:45 250

原创 线段树插队。。题目有点忘了、、

#include#includeusing namespace std;int a[200005];int pos[200005];int tree[600005];int n,L,R;void build(int node,int tl,int tr){ tree[node]=tr-tl+1; if(tl==tr) return ;  int mid=(t

2016-06-29 22:40:22 228

原创 约瑟夫问题线段树

虽然很弱智,毕竟也是做的第一个疑似权值线段树的东西#include #include #include using namespace std;const int maxn=100010;int sum[maxn<<2];void pushup(int idx){ sum[idx]=sum[idx<<1]+sum[idx<<1|1];}void build(int

2016-06-29 22:39:29 443 1

原创 矩形覆盖

相信这个世上没有比我写的还要乱七八糟的线段树了。。。#include#include#includeusing namespace std;int n;int L,R;const int Ni = 210; struct node { int l,r,h; int s; bool operator < (const node & a) const

2016-06-29 22:37:09 206

转载 bzoj3289 树状数组加莫队注意这题每天的交换该是不影响的。。。还有一次交换等价于去掉一个逆序

#include#include#include#include#include#include#include#include#include#include#define inf 1000000000#define ll long long#define eps 1e-5using namespace std;int read(){ int x=0,f=1;ch

2016-06-29 21:24:33 285

转载 bzoj3781

从模版开始。。。#include#include#include#include#include#include#include#include#include#define inf 1000000000#define ll long longusing namespace std;int read(){ int x=0,f=1;char ch=getchar

2016-06-29 21:09:05 296

转载 bzoj1071

[Problem Description]NBA每年都有球员选秀环节。通常用速度和身高两项数据来衡量一个篮球运动员的基本素质。假如一支球队里速度最慢的球员速度为minV,身高最矮的球员高度为minH,那么这支球队的所有队员都应该满足: A * ( height – minH ) + B * ( speed – minV ) [Algorithm]堆[Analysis

2016-06-29 21:00:18 328

转载 bzoj1455

只能说随机是个好东西比左偏树好写一点#include #include #include #include #define MAX 1000010using namespace std;struct Heap{ Heap *son[2]; int val; Heap(int _):val(_) { son[0] = son[1] = NU

2016-06-29 20:29:51 237

原创 并不能ac jsoi2009

看到这种题目,,下意识先来了个莫队。。。然后。。。想想加个set。不就好了。。看看复杂度n^1.5*logn可能会卡过去吧。。。然后就写了一下。。然后就tle了。。。 #include#include#include#include#include#include#define N 100005#define ll int using namespace std;int

2016-06-27 22:30:43 183

转载 bzoj2724

不得不说分块的思想真的很神奇。。。在线区间众数的分块做法比较多,这里提供一个思路:首先离散化一下比较方便。最初可能会有一个想法,是不是众数只可能是完整的块的众数,或者不完整的块出现的数呢?显然很容易得出反例。应该是完整的所有块的众数,和不完整块中出现的数。所以我们可以预处理f(i,j)表示第 i 块到第 j 块的众数(枚举 i 开个桶扫一遍)。那

2016-06-27 19:38:07 358

转载 bzoj3343

感觉除了打个标记和暴力重构。基本跟上一篇一样#include#include#include#includeusing namespace std;int n,q,m,block;int a[1000001],b[1000001],pos[1000001],add[1000001];void reset(int x){ int l=(x-1)*block+1,r

2016-06-26 19:45:49 257

转载 bzoj2120

分块是一种便捷打法,然而我的常数实在是有点 差。。。#include#include#include#include#include#define N 10001#define M 1000001#define forup(i,a,b) for(int i=a;i<=b;i++)#define fordown(i,a,b) for(int i=a;i>=b;i--)using

2016-06-26 19:26:29 296

转载 弹飞绵羊

因为极度讨厌splay。。平衡树又只会treap...所以非常不想看lct...然后就只好看看分块。。。对于分块边界的加加减减一直没有统一。觉得hzwer写的这种还比较好。那就借鉴一下好了。。。#include#include#include#include#include#include#define inf 0x7fffffff#define ll long longusing

2016-06-25 22:45:54 478

原创 一个精度题。。。

首先肯定想到二分。。。然而j精度问题。。。那就看你自己的造化了。二分得出一个每个人的(步长)然后再来一次二分就可以了(其实直接枚举就好了)#include #include #include #include #include #include #include #include #include #include #include #include #include

2016-06-24 20:00:04 331

转载 跪舔

题意:将一个正整数i的约数个数记为g(i),如g(1)=1,g(2)=2,g(6)=4。如果对于一个正整数k,对于任意正整数ig(i),则k被称为反质数。比如说1,2,4,6,12就是前5个反质数。现在给定一个N,求N以内最大的反质数(N一个数的质因数分解形式为:  n=p_1^a_1*p^2^a_2*p_3^a_3*...*p_k^a_k则

2016-06-23 21:21:33 539

转载 bzoj3223区间翻转

本着碰到平衡树都用可持久化treap的原则,找到了一个写的比较短的而且不用深坑的指针的写法,感觉写得还不错。#include#include#include#define N 200005#define mp make_pair#define pa pairusing namespace std;struct treap{int val,ls,rs,sz,key,flip;}t[

2016-06-23 20:24:40 249

转载 可持久化treap 模版

#include#include#include#include#include using namespace std;#define rep(i,x,y) for(int i=x;i<=y;++i)#define dep(i,x,y) for(int i=x;i>=y;--i) struct Treap{Treap *l,*r;int fix,key,size; Tr

2016-06-21 22:41:39 282

转载 带有延迟的斜率优化pku3709

#include #include #include using namespace std; const int N = 500010;typedef long long llg; int n, k, queue[N];llg sum[N], f[N], a[N]; llg dy(int j1, int j2){ return (f[j1]-sum[j1]+a[

2016-06-21 19:30:08 274

转载 斜率优化反向dp

时间: 1000ms / 空间: 131072KiB / Java类名: Main描述共有N(1 输入格式输入第一行包含一个整数N(1 输出格式输出仅一行,包含一个整数,表示最小总费用。备注输入样例511 33 24 32 31 4 输出样例153一开

2016-06-20 20:12:44 285

原创 玄学啊

时间: 1000ms / 空间: 131072KiB / Java类名: Main描述我们定义一个矩阵的权值为这个矩阵四个角上的数值的最小值。现在小M有一个矩阵,他想在这个矩阵中寻找到一个权值最大的子矩阵,请你告诉他这个最大权值。输入格式第一行两个数n m接下来一个n*m的矩阵输出格式一个数表示最大权值

2016-06-20 19:34:58 604

原创 单调队列优化dp

来看个小例子:     对于一个长度为n的整数序列(a1,a2,......,an),从中找出一段连续的长度不超过m的子序列,使得这个序列的和最大。首先前缀和sum[i]=a[1]+a[2]....+a[i];         容易想到 f[i]=max{sum[i]-sum[k]}  (i-m    时间复杂度为O(m*n)优化 :先分离f[i]-sum[i]=max(-su

2016-06-19 21:19:13 266

转载 斜率优化

bzoj1911 && APIO2010 特别行动队题目描述你有一支由n名预备役士兵组成的部队,士兵从1到n编号,要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如(i, i + 1, …, i + k)的序列。编号为i的士兵的初始战斗力为xi ,一支特别行动队的初始战斗力x为队内士兵初始战斗

2016-06-19 21:03:01 417

转载 dp斜率优—2

hdu4258题目大意:将n个升序数字序列,分成几组连续的序列 ,每一组的所得值,等于最右边的num2减去最左边 的num1,的平方+c即(numi-numj)^2+c解题报告 人:GHQ(SpringWater)分析可得:(dp[j2]-dp[j1]+num[j2+1]*num[j2+1]-num[j1+1]*num[j1+1])/(2(num[j2+1]-n

2016-06-19 20:56:37 197

eeeeeeeeeee

求分

2015-05-15

空空如也

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

TA关注的人

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