随笔分类 - 离散化
摘要:地址:https://www.acwing.com/problem/content/description/804/ 一: 本来想的是差分做,但是范围是不允许开这么大的数组的。l,r<=1e9 所以考虑离散化。 发现n只有1e5,n个加操作,m个L,R,最多用到n+L+R个区间,也就是3e5。所以开
阅读全文
摘要:地址:https://ac.nowcoder.com/acm/contest/5673/I 题意: n次,每次给出a,b; 可以进行三种操作: 1.不选 2.a如果之前没选过,可选a 3.b如果之前没选过,可选b 求可以获得的最大数目 解析: 首先用map进行一个离散化处理 假设把每次输入的看成一条
阅读全文
摘要:地址:http://acm.hdu.edu.cn/showproblem.php?pid=4911 题意:可以进行k次相邻数的交换,问交换后还有多少个逆序对。 解析: 两种 nlog(n)的做法: 一: 归并排序 直接套模板即可。 归并排序,两次递归后,得到的是内部已经排好序的两组,所以只要有一个a
阅读全文
摘要:地址:https://ac.nowcoder.com/acm/contest/5158/H 解析:1e9,开不了这么大的pr[],所以采取离散化处理。假设输入了 10 12 ,可以把它们存到另一个数组now[]里:i=1,10 i=2,12,这样就可以把数字用坐标来代替,n只有1e6,所以pr[]开
阅读全文
摘要:双指针算法。 相向双指针,指的是在算法的一开始,两根指针分别位于数组/字符串的两端,并相向行走。 ACWING 的一道裸题(不知道为啥进不去404):最长连续不重复子序列 输入 5 1 2 2 3 5 输出 3 需要两个指针,指针范围为不重复自序列,i,j为其两端。j为左边,i为右边。a【】数组记录
阅读全文

浙公网安备 33010602011771号