自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 关于斜率优化的dp【把自己的以前的文章放上来

其实是做bzoj3437时注意到的。。。这个斜率优化很显然吧。。然后发现某进队爷的做法:http://cxjyxx.me/?p=641 卧槽怎么这么复杂。。。。 其实斜率优化本来是很简单的东西> 考虑这样的问题,给出一堆直线,询问x=x0时,y能达到的最大值或最小值。 这个问题显然维护凸壳就好了吧,然后在凸壳上二分。。。 如果询问是递增的,就不用二分了,直接扫就好。。

2015-12-16 19:34:58 418

原创 NOI 2015 品酒大会

NOI 2015 品酒大会 题意:戳这里 题解:这个一看就知道是后缀数组。。。。。我们得到hei数组之后从大到小排序,一个个加进去并统计答案,用并查集维护连续的一段,注意连续的一段要保留最小值(因为有负数) 代码:#include <bits/stdc++.h> #define For(ii,a,b) for (int ii=(a);ii<=(b);ii++) #define Rof(ii,a

2015-11-25 17:23:47 490

原创 bzoj 3308

只是转发一下以前的题解而已。 题意见:http://hzwer.com/7220.html (不过我的做法略有区别) 下面是以前的纱布题解: 这题蒟蒻自己弄到AC表示好开心,虽然还是看了题解。。。(不过还是看不懂啊TUT) 首先观察小数据,可以观察出两个结论:1:最大解中质因子最多只有两个。2:如果是两个,那么一个大于sqrt(n),一个小于sqrt(n)。 用这个很明显

2015-11-19 21:48:19 621

原创 51nod 1207

#include #define rep(ii,a,b) for (int ii=(a);ii<=(b);ii++) #define rek(ii,a,b) for (int ii=(a);ii>=(b);ii--) using namespace std; const int maxn=100010; int n,m; int len; int fa[maxn],c[maxn][2],siz[

2015-11-18 10:26:59 366

原创 【codeforces】480E Parking Lot

#include #include #include #define rep(ii,a,b) for (int ii=(a);ii<=(b);ii++) #define rek(ii,a,b) for (int ii=(a);ii>=(b);ii--) using namespace std; int n,m,kk; char s[2005]; int a[2001][2001],up[20

2015-11-15 09:29:36 720

转载 在知乎上看到的东西啦。fractional cascading

在这里笔记一下好了。 转自: 链接:http://www.zhihu.com/question/33776070/answer/59405602 来源:知乎 我们从一个简单的算法题开始考虑:给出k个有序的数组 ,每一个长度为n;你可以对该数组进行线性时间的预处理,然后回答如下询问:给出x,回答每个数组中第一个小于x的元素是什么。 常规的想法是对于每个数组二分查找,复杂度是

2015-10-28 14:40:20 1939 1

原创 codeforces 498D

这题证明了我是有多傻逼。。。。。。 题目很好懂。。。那么由于只有2,3,4,5,6那么多的时间,自然可以以60为周期暴力搞了,当然估计有更好的做法。。但是要注意细节 代码: #include #define rep(ii,a,b) for(int ii=(a);ii<=(b);ii++) using namespace std; const int maxn=100001; int n,

2015-10-27 16:29:14 319

原创 codeforces 584E

题意: 给你两个排列,你要求让第一个排列变成第二个排列,你可以进行交换操作 每次交换操作的代价是abs(i-j),i,j为位置。 然后让你把方案输出出来 (by http://www.cnblogs.com/qscqesze/p/4858438.html) 首先我们对问题稍作转换,变成将一个排列排好序。显然,最小代价等于逆序对的数量。 因为要把某个数通过交换到

2015-10-11 10:15:05 536

原创 GDKOI2013 DAY2T4

#include #define rep(i_,a,b) for (int i_=(a);i_<=(b);i_++) #define clean(a) memset(a,0,sizeof(a)); using namespace std; const int maxn=100010; int n,test,len,nn,root,m,tt; long long ww; int own[maxn],

2015-10-08 19:38:15 580

原创 poj 3580 splay

这题没啥好说的。。。就是splay裸题。。然而我的splay的常数大得要死。弄了好久才过了。。。。 注意打标记的写法能有效减少常数。 然后还是数组流好了。。。妈蛋开结构体太蛋疼了。。。。不过结构体合并答案的时候是可以带来方便的,因此我们对于贮存答案的数组还是弄个结构体比较好,比如该死的最大连续子段和。。。。 代码: #include #include #include #include

2015-10-02 16:23:06 281

原创 51 nod D题

这题的时限。。。。无力吐槽。 我的算法和std完全一样。。也不知道为啥会tle(其实有一定概率ac) 不等关系用set存,当限制相等时启发式合并set,然后就没了。 代码: #include #define rep(i_,a,b) for(int i_=(a);i_ //using namespace std; using std::map; using std::set;

2015-09-28 11:01:26 391

转载 codeforces 576b

看了题解写了这题。。。可见我非常sb。 引用别人的题解吧很清楚了 ” 尝试把排列分解成若干个环。 然后就会发现如果在环中连了一条边,最终整个环就会被连上。 所以有以下结论 1)如果有大小为1的环,即置换后不变的点,把其他点全部连在这个点上。 2)剩下的环中,如果存在奇环,则无解。 3)剩下的环中,如果不存在长度为2的环,则无解。 4)拿出一个长度为2的环,其它的环

2015-09-28 10:44:25 318

空空如也

空空如也

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

TA关注的人

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