(数据量大时通过map维护元素的信息来降低枚举复杂度AtCoder - abc233_d 与AtCoder - abc166_e

简介: (数据量大时通过map维护元素的信息来降低枚举复杂度AtCoder - abc233_d 与AtCoder - abc166_e

E - This Message Will Self-Destruct in 5s (atcoder.jp)


D - Count Interval (atcoder.jp)


求数组中符合某种性质的情况个数,情况包含数组里的两个元素。


这类题的特征是性质可以变换成只包含一个元素的形式


且看上去非常贴合朴素枚举的特征,但数据范围不允许朴素枚举(2e5往上)


f[i] + f[j] == j - i可以换成f[i] + i == j - f[j],可以用map来维护任意一边,然后枚举另外一边


卡壳原因是没总结过这种map维护信息的优化,踩陷阱了


看完题解重做后又卡壳


// 卡壳:混淆了m[i-f[i]]和m.count(i-f[i]),前者返回映射值,如果不存在映射就使其映射值变为默认的0并返回,后者如果存在以i-f[i]为键值的映射则返回1,不存在则返回0(还以为是记数函数),


目录
相关文章
|
20天前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
60 3
SpringMVC入门到实战------5、域对象共享数据 Request、Session、Application、Model、ModelAndView、Map、ModelMap的详细使用及代码实例
这篇文章详细解释了在IntelliJ IDEA中如何使用Mute Breakpoints功能来快速跳过程序中的后续断点,并展示了如何一键清空所有设置的断点。
SpringMVC入门到实战------5、域对象共享数据 Request、Session、Application、Model、ModelAndView、Map、ModelMap的详细使用及代码实例
|
6月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
60 0
域对象共享数据model、modelAndView、map、mapModel、request。从源码角度分析
这篇文章详细解释了在IntelliJ IDEA中如何使用Mute Breakpoints功能来快速跳过程序中的后续断点,并展示了如何一键清空所有设置的断点。
域对象共享数据model、modelAndView、map、mapModel、request。从源码角度分析
|
3月前
|
存储 算法 Java
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
|
3月前
|
JavaScript 前端开发
Vue中传递自定义参数到后端、后端获取数据(使用Map接收参数)
这篇文章讲述了如何在Vue中通过Axios二次封装传递自定义参数到后端,并展示了后端如何使用Map接收这些参数,以及如何避免参数转换错误和统一接口设计的方法。
|
3月前
|
JSON 数据可视化 定位技术
Map——使用BIGEMAP+geojson获取乡镇行政边界数据
Map——使用BIGEMAP+geojson获取乡镇行政边界数据
162 0
|
5月前
|
缓存 安全 算法
Go 中使用 map 实现高效的数据缓存
Go 中使用 map 实现高效的数据缓存
|
5月前
|
存储 缓存 安全
Go 中使用 map 实现高效的数据查找和更新
Go 中使用 map 实现高效的数据查找和更新
|
5月前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【6月更文挑战第18天】Java Map是键值对数据结构的艺术,展示了设计效率与易用性的平衡。HashMap利用哈希表实现快速访问,TreeMap通过红黑树保证排序。选择合适的实现类如HashMap、TreeMap或LinkedHashMap至关重要。注意空指针异常,谨慎在遍历时修改Map。Map的高效使用能提升编程效果。
26 0