- 2024-08-21P1972 [SDOI2009] HH的项链 题解
前言这是一篇分块题解,大概的思路洛谷的题解里的巨佬讲的很清楚(我的思路其实和大佬的差不多),可以去看看qaq。因为苯人为了卡常魔改代码,所以在本题解的中间具体步骤展示部分仅展示魔改前的代码(也就是被卡常但是好看一点的代码),魔改后的代码(100pts)在文章最末展示。题意题面传送门
- 2024-08-12P1972 [SDOI2009] HH的项链
https://www.luogu.com.cn/problem/P1972莫队算法被卡,只能得60points正解有点像基于贪心的fenwicktree策略fenwick的每个位置表示当前位置上是否是某个数的最后一次出现位置,值为0或者1右指针升序排序,然后右指针移动过程中更新每个数最后一次出现的位置而不管左指针如何变,只
- 2023-08-20「解题报告」P1972 HH的项链
题目链接:HH的项链这道题做法很多,看到有用线段树,主席树和莫队做的,但我不太会用树状数组,所以讲解一下树状数组的解法。题干告诉我们要求区间内的贝壳的种类数,那么用树状数组怎么维护呢?我们通过一个简单的例子来理解一下。对于一个序列:143242,我们要去求这个序列里的贝壳的个数
- 2023-04-08P1972 [SDOI2009] HH的项链
P1972[SDOI2009]HH的项链【解法一】树状数组解法本题核心:如何判断一个区间内的贝壳是否重复?当右端点\(r\)固定时,不论\(l\)取何值,对于任意一组重复的贝壳,都可以只统计最右端的贝壳。原因:设一组重复贝壳中最右端的贝壳所在的位置为\(pos_r\),那么当\(pos_r<l\)时,其他
- 2023-03-15P1972 [SDOI2009] HH的项链
多次询问子序列[L,R]包含了多少种不同的数? 把问题离线,按照R排序ans[id]=qq(r)-qq(l-1)但前面重复的要减去,比如(1,2,1,1)#include<bits/stdc++.h>usingnamespace
- 2023-01-15P1972 [SDOI2009] HH的项链
题目传送门题意分析题目部分本题核心:如何判断一个区间内的贝壳是否重复?当右端点\(r\)固定时,不论\(l\)取何值,对于任意一组重复的贝壳,都可以只统计最右端的贝壳。原
- 2022-11-18P1972 [SDOI2009] HH的项链
P1972 [SDOI2009]HH的项链将全部输入排序,进行离散化#include<bits/stdc++.h>usingnamespacestd;#definerintregisterintconstintN=1e6+7;inta[N],tr
- 2022-10-20luogu P1972 SDOI2009 HH的项链
P1972SDOI2009HH的项链-洛谷|计算机科学教育新生态(luogu.com.cn)维护一个长度同为\(n\)的数组\(b\)。一个指针\(R\)从\(1\)扫到\(n\)并做如下操作:检查