HDU 5172 GTY's gay friends
来源:互联网 发布:虚幻4与unity3d 编辑:程序博客网 时间:2024/04/26 20:38
Problem Description
给出 n 个 1 到 n 的数字
Input
多组测试样例,每组先给出 n 和 m;其后是 n 个数;再其后是 m 行,每行是一对整数 l,r。
Output
每组询问回答 YES
或者 NO
。
Solve1: prefix sum & rmq
我们把一个序列是一个排列这个条件看做要同时满足一下两点:
- 这个序列的和是要询问的排列的和
- 这个序列中元素两两不同。
第一点容易解决,我们可以使用前缀和数组。
第二点解决也不难。只要先预处理出
于是第二点其实是一个 rmq 问题,遗憾的是 sparse table 在这个题目的限制内存下是不能用的。可以考虑线段树。
https://code.csdn.net/snippets/1582922/master/hdu5172.cpp/raw
Solve2: hash
hash 是一种比较时髦的做法。在这里使用是很巧妙的。
对于 1 到 n 每个数 i 我们随机一个整数(尽量随机范围大一点),作为 i 的哈希值。
我们把一段序列的哈希值设置为这个序列的数的哈希值的亦或值。
设置这两个哈希之后,我们考虑一个序列是一个排列,则必然两者的哈希值一样;反之哈希值一样,这个序列就很可能是一个排列。
我们处理
这种方法显然实现更容易,而且复杂度也低。
https://code.csdn.net/snippets/1582908/master/hdu5172%281%29.cpp/raw
- Hdu 5172 GTY's gay friends
- hdu 5172 GTY's gay friends
- HDU 5172 GTY's gay friends
- HDU 5172 GTY's gay friends
- hdu 5172 GTY's gay friends 线段树
- HDU 5172 GTY's gay friends(线段树)
- HDU 5172 - GTY's gay friends (线段树)
- hdu 5172 GTY's gay friends (线段树||hash)
- hdu 5172 GTY's gay friends Hash随机算法
- HDU 5172 GTY's gay friends HASH随机算法
- HDU 5172 GTY's gay friends (预处理+线段树)
- HDU 5172 GTY's gay friends (线段树)
- hdu 5172 GTY's gay friends (区间最值)
- HDU-5172-GTY's gay friends-线段树单点更新
- HDU 5172 GTY's gay friends(线段树)
- HDU 5172 GTY's gay friends(HASH 随机算法)
- GTY's gay friends
- hdu5172 GTY's gay friends
- 栈
- 1.1.3:可视化的累加器
- java高性能 tcp协议代码示例(一)
- android 音乐播放bug
- ACM_普通DP
- HDU 5172 GTY's gay friends
- 三思而行 --jsp基础篇
- 最近关于evaluation model的进阶理解(待更新)
- 【慕课笔记】第一章 异常与异常处理 第5节 JAVA中的异常链
- AdaBoost
- 队列
- Android-内容观察者
- 队列 hdu1276
- 几种常用加密算法比较