自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Everything can be done!

学习充实自己,使自己变得更加强大

  • 博客(17)
  • 收藏
  • 关注

原创 codeforces 242E(线段树)

题意:两个操作:1,查询区间和  2.对区间的所有的值进行异或x;思路:线段数维护一个区间的每一位的1的个数。#includeusing namespace std;#define clr(x,y) memset(x,y,sizeof x)typedef long long ll;const int maxn = 2e5 + 10;int a[maxn];int ad

2017-10-31 22:09:12 259

原创 codeforces 617E 莫队入门

莫队算法就是现将上所有的点分成sqrt(n)块,然后将要查询的区间离线起来,然后进行对[L,R]变到[L - 1,R] 、或者[L + 1,R],[L,R - 1],[L,R + 1]进行O(1)的变换。莫队算法是优雅的暴力,复杂度O(nlogn)。题意:给出一个一个数列,然后查询在给出区间的异或值等于k的子区间的个数。思路:先对区间进行去前缀和处理,然后区间[L,R]的异或值为sum

2017-10-31 18:29:17 298

原创 hdu 1043(搜索 + 康拓展开hash)

首先搜索大家都会,然后就是对于每一种状态进行判断是否之前走过了,这里就要用到hash,然后问题就转变为如何对这个3 ×3的方格进行hash了,我们都知道我们把x当成9的话,方程的数为1 ~ 9,那么我们就能用10进制来唯一表示每一种状态,但是我们会发现这样表示出来的数太大了,所以不采用这种hash方式。然后就学了康拓展开:0!1!2!……9!表示每一位权值对于一个排列,看这个数后边的有多少

2017-10-26 10:46:16 223

原创 uvalive 7366(二分 + 两向量的交点 + 向量的旋转)

题意:给出一个三角形的三个点,然后求使得图中的三个角相等的三角形内的点的坐标。思路:因为有单调性,所以对角进行二分,然后用两个角求出第三个角,看是否符合。#includeusing namespace std;#define PI acos(-1.0)typedef struct Node{ double x,y; Node operator

2017-10-23 21:31:18 259

原创 hdu 1542(线段数+扫描线 求矩形并的面积)

题意:给出一系列的矩形,求出矩形的并的面积和。思路:将要求出来的总的面积以y轴为分界线,分成若干个部分,然后求出各个部分的面积。(以下转载自:http://m.blog.csdn.net/tomorrowtodie/article/details/52048323)此图用4条横线将整个图划分成了5个部分,显然此时再算面积就可以用各个颜色的部分求和。

2017-10-23 20:52:17 245

原创 hdu 5389(LIS 搞一搞)

题意:对一个数列删除连续长度为L的数剩下的数列的最长递增子序列最大。思路:先预处理一下以i开始到结尾的数列的以a[i]为LIS 为最后一个数的数的长度,不是LIS !然后对于这样的话每次枚举i,每次查询操作之后把i - m这个元素加入的数组中。#includeusing namespace std;#define INF 0x3f3f3f3f#define cl

2017-10-21 17:10:56 492

原创 hdu5492(dp)

题意:给出一个30 × 30 的矩阵,然后从(1,1)到(n,m),求(n + m - 1) * s1 - s2 * s2的最小值。s1为路径上的点的权值平方和,s2为路径上的点的权值和。思路:dp[i][j][k]表示和为k的时候平方和最小的值。#includeusing namespace std;#define INF 0x3f3f3f3f#define clr(x,

2017-10-21 11:51:44 192

原创 uvalive 7374(LIS)

这个题思维性真的强!没想到是对于每一个点弄出它的左右的边界点。题目大意:现有一个长为h(竖直方向),宽为w(水平方向)的跑道,跑道上有一些宝石, 给出每一个宝石的坐标。你可以从起点线的任何一个位置(x,0)出发,出发后在竖直方向上有一个恒定的速度v,水平方向上的速度你可以在任意时刻控制在(-v/r~v/r)之间的任何一个值(给出r的值,不给出v的值),当你到达终点线时,移动结束。求你从

2017-10-21 11:06:21 224

原创 hdu 5033(单调栈)

当初比赛的时候本来想着单调栈来着,但是不知道维护的是什么?因为对于查询的点不同的话他们的斜率也会跟着变化,所以后边就没写。现在知道将查询的各个点也当成一个高度为0的楼,只需维护对于每一栋楼楼顶上的点的斜率。要维护一个从栈底到栈顶斜率一直递增的单调栈就行,那么的话对于他的一个端点就是栈顶元素。因为栈顶元素是斜率最大的。PS :非常巧妙,当初怎们没有想到。#incl

2017-10-21 10:33:21 289

原创 hdu 5475(线段树(锻炼思维))

题意。初始X=1; 给n,mod   ,表示n次操作操作1格式 : 1  b 表示用x乘上b操作2格式: 2   n 表示 当前x除掉第n次 "1操作” 的数每次操作输出一个答案,输出的答案是要对mod取模由于有除法所以我们不能每一步取模,因为对于每一个数对mod并不是都存在逆元一直在想什么办法能过。。。最后卡死了。。赛后才知道 直接就是一个长度为n的乘积线段树每个

2017-10-19 19:39:07 287

原创 hdu 4819(裸二维线段树)

树套树,这里查询方块的最大值+最小值/2,并在x,y处更新它#includeusing namespace std;typedef long long ll;typedef unsigned long long ull;#define clr(x,y) memset(x,y,sizeof x)#define INF 0x3f3f3f3fconst int maxn = 800

2017-10-16 21:59:11 382

原创 hdu 4821(字符串hash)

题意:找出有多少个M * L长度的串,串的M个连续长度为L的子串都不相同。思路:直接hash,选取一个起始位置(1 ~ L),然后每L个L个hash一下,然后类似与尺取,取m个,看是否是m个字符的hash值都不同。#includeusing namespace std;const int maxn = 1e5 + 10;typedef long long ll;typedef

2017-10-16 21:54:33 220

原创 hdu 4454(三分)

三分有两种写法,一种是平均三分,在区间里分成三等分。另一种是取中点,再取中点与右端点的中点进行三分。在这题里,第一种可以过,第二种不能过。所以以后还是都用平均的三分板子吧#includeusing namespace std;#define clr(x,y) memset(x,y,sizeof x)const int maxn = 10 + 10;struct

2017-10-14 21:47:28 298

原创 hdu5245(概率)

题意大致是:进行K次染色,每次染色会随机选取一个以(x1,y1),(x2,y2)为一组对角的子矩阵进行染色,求K次染色后染色面积的期望值(四舍五入)。显而易见的是,当K=1时,期望被染色的面积会等于每个1*1的方块被染色的期望累加之和。假设K=1时即只染色一次时,位于第x行第y列的方块被染色的概率为A[x,y]在K次操作后被染色的期望假设为P[x,y],可以用P

2017-10-02 22:01:34 692

原创 hdu 5242(贪心)

题意:给一颗N个节点的树,有N-1条有向边,每个点有一个权值,从1号点放k个人走到叶子结点,求覆盖路径的最大权值和。思路:先反向建树,求出每个点到根节点的权值和,可以保证这是一条无分岔的路。然后从大到小排序,从权值和大的点开始覆盖道路,最后再排序取前k大的路即可。#includeusing namespace std;typedef long long ll;typ

2017-10-02 19:48:49 270

原创 codeforces 825F (简单dp + KMP)

题意:给出一个字符串,你要把它尽量压缩成一个短的字符串,比如一个字符串ababab你可以转化成3ab,长度为 3,比如bbbacacb转化成3b2ac1b,长度为 7,aaaaaaaaaa转化为10a,长度为 3。思路:先n^2预处理出i,j之间的需要多少长度变成,然后简单状态转移一下。预处理的时候要运用到next数组的性质,即求一个字符串的最小循环的长度,如果len % (len

2017-10-01 18:00:49 803

原创 codeforces 825E(拓扑)

题意:要求输出字典序最小的拓扑序列。思路:反向建个图,然后选取最大值进行拓扑。PS :一直想不到这个反向,当初傻傻地交了一发直接图跑最小,然后回出现当选取的大的时候,会使得小的比原来的更小的情况。#includeusing namespace std;typedef long long ll;typedef pair P;#define fi first#define s

2017-10-01 11:51:08 237

空空如也

空空如也

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

TA关注的人

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