自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yhf_2015

Holle World.

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

原创 【BZOJ 1355】[Baltic2009]Radio Transmission

题目来源:BZOJ 1355思路:求循环节用到KMP的fail数组的性质。 试想一个长度为n的字符串,fail数组是后缀与前缀相同的最长的长度,那么最短的循环节是不能匹配的,长度为n−fail[n]n-fail[n]。代码:#include const int maxn = 1000010;int f[maxn], n, p;char a[maxn];int main

2016-12-29 20:02:51 262

原创 【学习】数据离散化

离散化就是找到数据中有用的记录下来,查找的时候二分找位置。#include #include using namespace std;int a1[20] = {0,4,1,2,1,2,4,4,3,3,6,7,5,6,5,4};int main(){ int n = 15; sort(a1+1, a1+1+n); n = unique(a1+1, a1+1+n)

2016-12-29 13:25:44 240

原创 【学习】Treap平衡树

Treap简介Treap 是指有一个随机附加域、满足堆的性质的二叉搜索树。其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为 O(logn)O(\log n)。相对于其他的二叉搜索树,Treap 的特点是实现简单,且能基本实现随机平衡的结构。Treap特性Treap 在基本的二叉搜索树基础上增加了一个随机附加域,整棵树不仅要满足二叉搜索树左儿子小右儿子大的性质,同时也

2016-12-29 13:24:24 322

原创 【学习】Splay平衡树

#include #include #include #include #include #define fi first#define se second#define in(x) getint(&x)#define pii pair#define FOR(i,m,n) for(int i=m;iusing namespace std;typedef long long

2016-12-29 13:23:10 315

原创 【BZOJ 3223】文艺平衡树

题目来源:BZOJ 3223思路:先用权值把整棵树都建起来,然后二分的找rank,确定之后先操作翻转,打上标记,需要的时候再下放。代码:

2016-12-29 13:22:18 177

原创 【BZOJ 3224】普通平衡树

题目来源:BZOJ 3114思路:用来练习splay,通过反复的写,有几点需要注意:void rotate(node *now){ node *fa = now->pre, *gra = now->pre->pre; int wh = now->wh(); fa->set_ch(wh, now->ch[wh^1]); now->set_ch(wh^1

2016-12-29 13:21:26 332 2

原创 【BZOJ 4282】慎二的随机数列

题目来源:BZOJ 4282思路:题目要求一个数列的最长上升子序列的长度,因为n是整数,所以不难发现在最优的答案里,所有不清楚的数字应该全部出现在其中。很显然的一点是,如果可以的话,在答案序列中出现一个模糊不清的数一定不会比不出现时的答案要差(考虑那一个数最多替换下去一个数)。 因为空的一定要选,就相等价的转换为后面的数都变小了,根据差分的思想,不难想到发生的实质变化就是保证了所有的

2016-12-29 12:59:00 282

原创 【BZOJ 1003】[ZJOI2006]物流运输

思路:首先预处理出cost数组,cost[i][j]表示从第i天到第j天满足这些天所有的条件能跑出来的最短路,如果没有路径,值为inf。 然后用O(n2)O(n^2)的动态规划求出答案。 状态转移方程:f[i]=min{f[j]+cost[j+1][i]∗(i−j)+k}f[i]=min\{f[j]+cost[j+1][i]*(i-j)+k\} 因为一开始不需要转换路径,所以答案为f[n]−k

2016-12-29 12:57:53 252

原创 【BZOJ 2424】[HAOI2010]订货

思路:动态规划。 设f[i][j]f[i][j]表示前ii个月,剩余存货量为jj的最小代价。 可以枚举k,表示上个月剩余多少件。 状态转移方程: f[i][j]=min{f[i−1][k]+k∗m+(j+u[i]−k)∗d[i]}f[i][j]=min\{f[i-1][k]+k*m+(j+u[i]-k)*d[i]\} 整理可以得到: f[i][j]=min{f[i−1][k]+k∗(m−

2016-12-29 12:47:06 232

原创 【学习】彻底理解树状数组

前言: 可能是因为学习了很多高级数据结构的缘故,突然感觉好像明白了树状数组,重新总结一下。 本文通过从根源深处挖掘树状数组所解决的问题,深刻的理解树状数组的操作本质,若要系统的研究树状数组,建议学习一下“二进制分解”“倍增”的概念。 考虑到初学者,文章写的比较长,废话比较多,还望耐心的看下去,相信你也能有新的收获。 温馨提示:文章中的代码仅供参考思路,不保证100%正确,使用时请根据原题情况

2016-12-24 01:20:58 2911 2

原创 基本不等式 学习笔记

公式:调和平均值≤\le几何平均值≤\le算术平均值≤\le平方平均值 21a+1b≤ab−−√≤a+b2≤a2+b22−−−−−−√\frac{2}{\frac{1}{a}+\frac{1}{b}}\le \sqrt{ab}\le \frac{a+b}{2}\le \sqrt{\frac{a^2+b^2}{2}}例题:例1:当axπ2a时,函数f(x)=1+cos2x+8sin

2016-12-14 21:10:19 3329

原创 生物必修二的一些知识

(苦逼的文化课 -> 终于体验了一番生物6个选择错5个的感觉) (停课回来的我表示一脸懵逼)基因的分离定律在生物的体细胞中,控制同一性状的遗传因子成对存在,不相融合;在形成配子时,成对的遗传因子发生分离,分离后的遗传因子分别进入不同的配子中,随配子遗传给后代。基因的自由组合定律同源染色体相同位置上决定相对性状的基因在形成配子时等位基因分离,非等位基因自由组合。测交目的:测定显性个体的基因型 未知

2016-12-13 00:08:33 581

原创 【uva 11300】 Spreading the Wealth

题意环形排列的n(n≤106)n(n\le 10^6)个人,每人有一定量的金币。每个人可以给左右相邻的两个人金币,最终使得每个人都有相同量的金币。求被转手的最小金币数。思路贪心的经典题。 一个人最后手中的金币数一定是所有人金币数的和除以人数(考虑均分)。

2016-12-11 21:49:07 314

原创 【uva 11729】Commando War

代码:#include <iostream>#include <cstdio> #include <algorithm>using namespace std;const int maxn = 10010;struct node{ int b, j; bool operator < (const node t)const{ return j == t.j ?

2016-12-11 21:35:17 263

原创 【uva 11292】Dragon of Loowater

代码:#include <iostream>#include <cstdio> #include <algorithm>using namespace std;const int maxn = 20010;int n, m, p, res, ok;int a[maxn], b[maxn];int main(){ while(scanf("%d%d", &n, &m) && n+

2016-12-11 21:21:53 224

原创 【洛谷 3128】最大流

题目来源:洛谷 3128思路:首先做lca,找到lca以后进行点的标记,开始的位置和结束的位置+1,lca -1,lca的父节点-1,然后做树上差分,顺便记录答案即可。代码:#include <bits/stdc++.h>#define pii pair<int,int>#define mp(a,b) make_pair(a,b)#define fi first#define se seco

2016-12-10 17:14:08 295

原创 【期望dp练习】lyk loves jumping

没有提交地址题目描述LYK 发现了 n 个点,它想在这些点上跳来跳去。 具体地,第 i 个点有一个高度 hih_i,当 LYK 踩在这个点上方时,这个点会下降 tit_i,也就是说此时该点高度为 hi−tih_i-t_i,当 LYK 离开该点时,这个点又会恢复到原来的 hih_i。 现在 LYK 每次可以跳到不超过它当前所在点高度的点(当 tit_i=0 时,LYK 可以跳到自己所在的点)

2016-12-10 16:53:47 390

原创 【BZOJ 2190】[SDOI2008]仪仗队

题目来源:BZOJ 2190思路:假设方阵是一个二维的坐标系的第一象限,那么从(1,1)(1,1)开始算起,能被观察到的点(x,y)(x,y)一定满足性质gcd(x,y)=1gcd(x,y)=1。这很显然,否则(x/gcd,y/gcd)(x/gcd,y/gcd)这个点一定会挡住点(x,y)(x,y),所以根据这个性质来看,要求的就是从2→n2\to n的欧拉函数的和了。代码:#include <cs

2016-12-10 14:43:10 282

原创 【BZOJ 1047】理想的正方形

题目来源:BZOJ 1047思路:用二维单调队列维护二维数组的最大值和最小值,之后直接查询。 具体的来说,先用单调队列维护每一行的值,再维护每一列的值。代码:#include <cstdio>#include <iostream>#include <algorithm>using namespace std;inline int gt(){ char c = ' '; in

2016-12-10 14:00:27 325

原创 NOIP2016 提高组 解题报告

说明:由于我能力的限制,文章中的做法不一定是最优秀的算法,但官方数据全部测试通过,使用的全部知识全部是NOIP提高组的知识,请组织放心查看。 感谢 GoodQt 的指导与帮助DAY1 T1 玩具谜题题目来源:洛谷 1563吐槽:对NOIP出题人“魔法师”英语单词拼错表示(滑稽)。思路:模拟操作过程,分类讨论即可。 时间复杂度:O(n+m)O(n+m)代码:#include <iostream>

2016-12-06 21:52:43 6358

原创 NOIP2016 普及组 解题报告

T1 买铅笔题目来源:洛谷 1909思路:实现一下向上取整的步骤,对三种决策取最小值。代码:#include #include #include using namespace std;int num, val, n, res = 2e9;int main(){ scanf("%d", &n); for(int i = 1; i 3; i ++){

2016-12-04 19:41:33 4264

sdoi2017R1D2

sdoi2017R1D2

2017-04-16

sdoi2017R1D1

sdoi2017R1D1

2017-04-16

空空如也

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

TA关注的人

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