Description背景众所周知,花神多年来凭借无边的神力狂虐各大 OJ、OI、CF、TC …… 当然也包括 CH 啦。描述话说花神这天又来讲课了。课后照例有超级难的神题啦…… 我等蒟蒻又遭殃了。花神的题目是这样的设 sum(i) 表示 i 的二进制表示中 1 的个数。给出一个正整数 N ,花神要...
分类:
其他好文 时间:
2014-12-27 22:53:23
阅读次数:
171
既然询问的长度是确定的,那么我们可以将所有长度为K的字串弄个哈希值出来,这样字串存在性=>哈希值存在性。自然上溢哈希,base=107比较不错。序列长度n=>n-K+1询问区间[x,y]=>[x,y-K+1]注意特判x是否>y-K+1然后我们注意到没有修改,于是将哈希值离散化后,莫队大法好。#inc...
分类:
编程语言 时间:
2014-12-27 21:42:55
阅读次数:
293
题目大意:平面上一些点,求一个点到所有点的切比雪夫距离只和最小。
思路:和那个松鼠的题目比较像,但是松鼠的那个是求的点是所有点中的一个点,而这个题却不一定。和那个题一样,将横纵坐标分别排序,然后取中位数统计。但是有可能会出现小数,因此随即调整一下,取最小值就行了。
CODE:
#include
#include
#include
#include
#define ...
分类:
其他好文 时间:
2014-12-23 14:02:44
阅读次数:
185
题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小
与3170不同的是这次选择的点无需是n个点中的一个
首先将每个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半就是原点之间的切比雪夫距离
由于曼哈顿距离中横纵坐标不互相干扰,因此我们可以将横纵坐标分开处理
每一维要选一个坐标 到其他所有坐标的绝对值之和相等 很容易想到中位数
但是直接选择中位数得到的...
分类:
其他好文 时间:
2014-12-23 14:00:41
阅读次数:
146
3208: 花神的秒题计划ⅠTime Limit: 16 SecMemory Limit: 128 MBSubmit: 323Solved: 211[Submit][Status]Description背景【backboard】:Memphis等一群蒟蒻出题中,花神凑过来秒题……描述【discrib...
分类:
其他好文 时间:
2014-11-17 13:43:16
阅读次数:
138
题目大意:给出一个序列,问一个区间里有没有长度为定长的已知序列。
思路:第一步的想法是把序列哈希一下,如果暴力的话,就是在区间里面O(n)的去判断,但是这样显然太慢了,我们需要O(logn)的时间之内求出区间内有没有一个值。这个问题就可以用可持久化线段树或者划分树来解决了。划分树我不咋会,就写了可持久化线段树。代码略丑,见谅。
CODE:
#include
#inclu...
分类:
其他好文 时间:
2014-11-04 17:34:01
阅读次数:
120
题目大意:给定一个数字串,多次求某个区间内有没有一个长度为k的子串
首先对字符串进行哈希 然后问题就转化成了求一个区间内有没有某个数
可持久化线段树即可 其实我觉得划分树会更快一些 可以写写
※注意事项:
1.n
2.哈希值用unsigned long long 铁则 unsigned int 会被卡掉
3.线段树那里直接x+y>>1会爆unsigned long long 转...
分类:
其他好文 时间:
2014-10-19 15:43:59
阅读次数:
228
一道简单的数位 dp 题但是脑子里只有 __builtin_popcountll 了呢(自重)看完题解后很快就理解了,而且有一种这么简单的题居然没想到做法真是不应该唉~的感觉用 f[i] 表示 1 的位数为 i 且小于 n 的数的个数然后答案就是 Πif[i],而 f[i] 的话从高到低 dp 用组...
分类:
其他好文 时间:
2014-10-18 18:17:54
阅读次数:
214
题目大意:花神对每一个国家有一个喜爱程度,有的时候他会对连续的一段国家进行访问,求他的喜爱程度的和;有的时候他会对连续的一段国家产生厌恶,喜爱程度变成sqrt(x)下取整。
思路:乍一看好像是RMQ问题,用线段树就可以水过,但是开根号的标记怎么下传?这是一个严重的问题,所以我们要换一个思路。
注意到开根号有一个有趣的性质:sqrt(1) = 1,sqrt(0) = 0,而且所有的数字经过有...
分类:
编程语言 时间:
2014-10-15 11:44:08
阅读次数:
216
题目大意:给定一个序列,提供下列操作:
1.将[l.r]区间内每个数a[i]变为sqrt(a[i])
2.查询[l,r]区间的和
根号是不支持区间修改的,于是我们选择单点修改区间查询的树状数组,但是这样是O(n^2)的,怎么办?
我们发现一个数x最多开loglogx次根号就会变为1 也就是一个int范围内的数只要开5次根号就会变为1 于是修改的总时间复杂度为O(nloglogn)
但是单...
分类:
编程语言 时间:
2014-10-10 16:03:44
阅读次数:
217