自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ZOJ 3868 GCD Expectation

题意:给定n,k和n个数,要求出n个数所有非空子集的gcd^k的数学期望乘上(2^n-1)。思路:其实就是求所有非空子集的gcd^k的和。。。由于a[i]不大,可以枚举gcd设gcd=x, 我们需要求出gcd为x的子集有多少个,显然我们可以求出gcd为x,2x,3x,4x........的子集有多少个, 也就是能被x整出的数有y个的话,gcd为x的倍数的自己就有2

2015-04-15 09:53:22 607

原创 ZOJ 3865 Superbot

题意:走迷宫。。。思路:dis[x][y][t][d]表示从起点出发走到(x,y),花费时间%p=t并且移动光标在d的最小话费,然后判断一下条件bfs就行了。。#include #include #include #include #include using namespace std;#define N 20#define M 140000#define mo

2015-04-15 09:44:49 425

原创 ZOJ 3862 Intersection

题意:给定n对点,每对点都有一条边相连,每次操作可以交换两个点的坐标,要求输出一个操作序列使得所有点对的边不相交。思路:将点按照x坐标排序,从左到右扫描,将第2k-1个和第2k个点连边,这里的连边指的是通过交换点的坐标。用到两个数组match[u]=v表示u和v相连,id[i]=v表示排序后第i个位置是原本的第v个点,a[v]=i表示原本第v个点排序后位置是i。假设第2k-1点

2015-04-15 09:40:04 581

原创 ZOJ 3864 Quiz for EXO-L

题意:给一些图片和矩阵, 要求出和矩阵匹配的图片。思路:机智的队友过的题。。。首先,很明显大部分图片的黑白8联通块个数都是不同的,所以可以根据这个判断出大部分的图片。不过很良心的样例给出了两个黑白联通块相同的情况, 这个时候求出两个图片的黑白比例,然后看比较靠近哪一个就取哪一个。。。总之很神。。。#include #include #include #in

2015-04-15 00:10:29 1141

原创 ZOJ 3866 Cylinder Candy

题意:用巧克力包住一个圆柱形的糖果, 并且巧克力的厚度为d。思路:脑补一下, 包住后从一个过中心轴的面切割糖果, 大概就是这样。。。(一个矩形,角变成圆弧那样。。)体积和表面积主要是圆弧那一段旋转之后比较不好求。都是要用积分求。所以只说怎么求圆弧那一段旋转后的体积和表面积体积:在圆弧上选一段微元dx,将x从0到d积分, 得到圆弧部分体积为:

2015-04-15 00:00:26 500

原创 ZOJ 3861 Valid Pattern Lock

题意:给定一个9格的解锁序列包含的数字, 求这个序列有多少种。思路:用next_permution枚举全排列, 直接判断就行了。。#include#include#include#include#include#include#include#include#include#include#include#define LL long long#define

2015-04-14 23:15:44 337

原创 SPOJ GSS7 Can you answer these queries VII

题意:维护一棵树, 需要满足修改路径上的值和询问路径上最大连续子段和。思路:用lct维护。 修改直接搞个lazy就好, 询问的时候如果是求出lca的话比较麻烦, 但是可以先把u弄成树的跟, 然后access(v), 然后在splay(u), 这时候u节点所在的splay树里面就是u到v的所有节点, 所以输出最大值就可以了。。重点还是在push_up和push_down。。。

2015-04-09 19:27:15 607

原创 SPOJ GSS6 Can you answer these queries VI

题意:要求维护一个数列, 满足插入, 删除,修改和询问最大连续子段和的操作。。思路:用splay维护, 由于子段要求非空。。 所以push_up那里不能直接用空儿子的值。。#include #include #include #include #include #include #include #include #include #include us

2015-04-09 19:21:50 533

原创 SPOJ GSS5 Can you answer these queries V

题意:给定一个序列和m个询问, 每次询问左端点在[x1,y1],右端点在[x2,y2]的最大连续子段和。思路:还是用线段树跟GSS1差不多的搞,如果两个区间不相交的话,就求出[x1,y1]的右连续和[x2,y2]的左连续, 再加上中间的区间和。如果相交的话, 需要求出[x2,y1]的最大连续子段和,[x2,y1]的左连续加上[y1+1,y2]的右连续,[x1,x2-1]的左连续加上

2015-04-09 19:18:01 731

原创 SPOJ GSS4 Can you answer these queries IV

题意:给定一个序列和m个操作,1,让l~r区间内的数都开方2,求区间和。思路:由于LL内的数最多开方10次就会变成1了, 所以用区间维护区间和, 然后开方的时候如果不是全都是1的话就暴力开方, 区间内全都是1的话就不更新。这么搞不是很靠谱的感觉。。用线段树套平衡树可以做到mlognlogn。。 但是懒得写了。。。#include #include #include

2015-04-09 19:10:22 426

原创 SPOJ GSS3 Can you answer these queries III

题意:GSS1的基础上加上修改。。#include #include #include #include using namespace std;#define N 100020#define ls (i << 1)#define rs (ls | 1)#define md ((ll + rr) >> 1)int n, sum[N*4], lx[N*4], r

2015-04-09 19:06:09 629

原创 SPOJ GSS2 Can you answer these queries II

题意:给定一个序列和m个询问, 要求求出一个区间内最大连续子段和, 并且相同的数只能算一次。思路:把询问离线, 按右端点排序,从小到大扫描询问, 假设当前询问的右端点是r, 用线段树维护4个值:mx_s: 左端点为ll,右端点在[l,r]的最大连续子段和(也就是最优的情况)。s:左端点为ll, 到r的区间和。mx_add: 区间的最优懒惰标记。add: 区间的所有懒惰标

2015-04-09 19:00:08 742

原创 SPOJ GSS1 Can you answer these queries I

题意: 给定一个序列和m个询问, 要求求出一个区间内的最大连续子段和。思路:用线段树维护一个区间左连续最大子段和,右连续最大子段和,区间和,区间最大连续子段和这4个东西, 然后就可以搞了。。查询的时候,如果查询的区间过当前区间的中点的话,就要查询左边区间的右连续最大值和右边区间左连续的最大值, 加起来和答案比较。#include #include #include using

2015-04-09 18:50:39 660

原创 hdu 4010 Query on The Trees (lct模板)

#include #include #include #include using namespace std;#define mxn 300020#define mxe 600020#define inf 0x3f3f3f3fint fst[mxn], nxt[mxe], to[mxe], e;int tot, pre[mxn], ch[mxn][2], key[mxn];

2015-04-09 14:26:47 455

原创 BestCoder Round #36 HDU(5198 - 5201)

人生第一次ak了bc, 当然要写个题解装逼一下。。(其实是题水。。。)Hdu 5198 Strang Class水题。。 不过wa了两发。。#include #include #include #include #include #include #include #include #include using namespace std;#define

2015-04-04 22:37:32 1084 4

原创 HYSBZ 1588 营业额统计(splay)

换一下splay的写法。。#include #include #include using namespace std;#define mxn 100020#define inf 0x3f3f3f3fint pre[mxn], ch[mxn][2], key[mxn], tot;int root;int creat(int fa, int val) { int ret

2015-04-03 12:58:28 525

2014国家集训队论文

2014国家集训队论文

2015-04-14

空空如也

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

TA关注的人

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