文章目录

  • 题目描述
  • 解析
  • 代码

题目描述


解析

如果枚举m,n,p的话是n3
会超时
但我们注意到右边查询只有O(n)
这就很不平衡
所以考虑把p移到右边,预处理枚举m、n存到哈希表中
查询枚举i、p
这样就把复杂度均摊降到了n2
但是本题数据较强
所以我们得保证哈希表的单词查询复杂度近似于O1
因此我们需要一个1e7左右的质数
此外,还要注意点的个数和边数都应该是n2级,3e7左右
好在本题空间复杂度是比较充裕的
可以通过

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
typedef unsigned long long ull;
const int N = 3e7+100;
const int M=1e7+5;
const ll mod=1e7+3;
int n;
int a[5050];
int fi[M],cnt=-1;
int num[N],tot=0;
struct node{int to,nxt;
}p[N];
void addline(int x,int y){p[++cnt]=(node){y,fi[x]};fi[x]=cnt;
}
bool find(int x){int o=x%mod;if(o<0) o+=mod;for(int i=fi[o];~i;i=p[i].nxt){int to=p[i].to;if(num[to]==x) return true;}return false;
}
void put(int x){int o=x%mod;if(o<0) o+=mod;num[++tot]=x;addline(o,tot);
}
int main(){memset(fi,-1,sizeof(fi));//printf("%d",sizeof(num)/1024/1024);scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%d",&a[i]);int ans=0;for(int i=1;i<=n;i++){for(int j=1;j<i;j++){int x=a[i]-a[j];if(find(x)){ans++;break;}}for(int j=1;j<=i;j++){int x=a[i]+a[j];if(!find(x)) put(x);}}printf("%d",ans);return 0;
}
/*
3
1 2 3
4 5 6
7 8 9
5 6 7
8 9 1
2 3 4
*/

YBTOJ:求好元素(哈希表)相关推荐

  1. YBTOJ 特殊数列(哈希表)

    文章目录 题目描述 解析 代码 题目描述 解析 应该是哈希表板子题了 选一个1e6左右的质数进行处理即可 其实本质就是链前 没啥特别新鲜的 为什么要写呢? 因为这个东西很早之前看的时候完全没有看懂.. ...

  2. 网络编程之 哈希表原理讲解 来自老司机的源码

    鉴于博主很久没由跟新过数据结构的内容了,所以博主打算给大家讲解一下哈希表的操作 下面的内容来自于一位老司机 martin的源码,博主在这里借用一下,目的是突出哈希表的原理,明天博主就周末了,也能腾出时 ...

  3. JavaScript 数据结构与算法(二)哈希表

    本文参考文献:https://www.cnblogs.com/AhuntSun-blog/p/12636718.html 配套视频教程:https://www.bilibili.com/video/B ...

  4. 哈希表— —链式实现

    哈希表的故事导入 故事情节 为了提高开发团队精神,缓解工作压力,某 IT 公司组织开发团队的 12 位男同事和测试团队 的 12 位女同事开展真人 CS 4vs4 野战联谊!面对性感的女同事,男同事们 ...

  5. C#中哈希表(HashTable)的用法详解

    1.  哈希表(HashTable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对, ...

  6. unordered_mapunordered_set的应用以及底层实现(哈希表)

    文章目录 1️⃣unordered系列关联容器 unordered_set unordered_map 2️⃣底层结构 哈希概念 哈希冲突 哈希函数 常见的哈希函数 哈希冲突解决 闭散列 线性探测的实 ...

  7. 一本通提高篇 哈希和哈希表 (二)哈希表

    哈希表 哈希表是一种搞笑的数奆结垢.它的优点同字符串哈希一样,查找的算法时间效率几乎就是常数时间,同时也很容易实现,多产生的代价仅仅是消耗内存. 那么什么是哈希表呢 ,我的理解是:按一种分类方式将所有 ...

  8. 使用哈希函数:H(k)=3k MOD 11,并采用链地址法处理冲突。试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表,求等概率情况下查找成功的查找长度,并设计构造哈希表

    使用哈希函数:H(k)=3k MOD 11 ,并采用链地址法处理冲突. 试对关键字序列(22,41,53,46,30,13,01,67)构造哈希表, 求等概率情况下查找成功的查找长度,并设计构造哈希表 ...

  9. <力扣>-----利用哈希表来判断是否存在重复元素

    class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> set = new HashSet&l ...

最新文章

  1. 01爬虫基本原理及Requests库下载
  2. 华南农业大学c语言期末试题,华南农业大学珠学院C语言期末试卷.doc
  3. 【大会】AI能解决哪些问题?
  4. 菜鸟教程 php mysql_PHP MySQL 读取数据 | 菜鸟教程
  5. 翻译练习:计算机网络
  6. Pandas 生成随机整数序列
  7. 虚拟机VM10装Mac OS X 10.9.3
  8. QTableWidget动态添加QComboBox并获取表格单元的Widget类型
  9. ado控件 怎么链接mysql_使用ADO或ADO控件访问数据库
  10. xp此计算机无法连接到,XP系统无法连接到网络怎么办
  11. 利用matlab来计算双曲函数的值,关于MATLAB第2章数值计算与数据分析的介绍
  12. Android10power有哪些功能,Android 功耗(10)---电流波形图(power monitor)
  13. 突然明白了原来我的QQ密保是这样被盗的
  14. 一个阅读分享的微信小程序(也可用于新闻阅读,新闻分享)(原创)
  15. 思博伦SpirentTestCenter - RFC2889之MAC地址表容量测试 -双极未来
  16. 云存储:对象存储管理与安全
  17. 预测赢家_COVID-19之后的14个技术赢家和输家
  18. mysql 1524_Debian/Ubuntu遇到MySQL错误ERROR 1524 (HY000):插件未加载的解决
  19. table表格中行与行间距
  20. 灾备中经常提到的RTO和RPO是什么意思

热门文章

  1. 我是怎么进入Oracle这样的大企业的?
  2. 2017新生儿爆款名字出炉!90后的父母们最受欢迎的居然是.....
  3. 微型计算机名词术语,微型计算机及接口技名词解释题及解答题.doc
  4. python达梦数据库_Python 编程可以访问达梦数据吗?
  5. 防腐投加器需要加盐吗_果干、果脯、蜜钱、水果脆片,哪个有营养?你吃对了吗?...
  6. php 实现类,php 获取页面中指定内容的实现类
  7. 评价的等级优良差_满意程度等级划分
  8. 窗宽窗位改变图像_CT、MRI图像的影像诊断4大原则、5个步骤、3大阅片方法
  9. mysql sql 检测磁盘_MySQL 数据库磁盘占用情况查询
  10. html 保存文件指定路径,78.上传文件及在服务器保存文件到任意路径