bzoj3809: gty的二逼妹子序列
又是一道許可權題。。。
本蒟蒻沒錢氪金。。。
附上洛谷題面:
洛谷p4867 gty的二逼妹子序列
autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。
對於一段妹子們,他們想讓你幫忙求出這之內美麗度\in [a,b]∈[a,b]的妹子的美麗度的種類數。
為了方便,我們規定妹子們的美麗度全都在[1,n][1,n]中。
給定乙個長度為$n(1 \le n \le 100000)$的正整數序列$s(1 \le si \le n)$,對於$m(1 \le m \le 1000000)$次詢問l,r,a,b
,每次輸出$s_l \cdots s_r$中,權值$\in [a,b]$的權值的種類數。
輸入格式:
第一行包括兩個整數$n,m(1 \le n \le 100000,1 \le m \le 1000000)$,表示數列ss中的元素數和詢問數。
第二行包括nn個整數$s1…sn(1 \le si \le n)$。
接下來mm行,每行包括44個整數$l,r,a,b(1 \le l \le r \le n,1 \le a \le b \le n)$,意義見題目描述。
保證涉及的所有數在c++的int內。保證輸入合法。
輸出格式:
對每個詢問,單獨輸出一行,表示$s_l \cdots s_r$中權值$\in [a,b]$的權值的種類數。
輸入樣例#1: 複製
10 104 4 5 1 4 1 5 1 2 1
5 9 1 2
3 4 7 9
4 4 2 5
2 3 4 7
5 10 4 4
3 9 1 1
1 4 5 9
8 9 3 3
2 2 1 6
8 9 1 4
輸出樣例#1: 複製
2002111
012
【樣例的部分解釋】
5 9 1 2
子串行為4 1 5 1 2
在[1,2]裡的權值有1,1,2,有2種,因此答案為2。
3 4 7 9
子串行為5 1
在[7,9]裡的權值有5,有1種,因此答案為1。
4 4 2 5
子串行為1
沒有權值在[2,5]中的,因此答案為0。
2 3 4 7
子串行為4 5
權值在[4,7]中的有4,5,因此答案為2。
建議使用輸入/輸出優化。
怎麼跟這題好像:
一看,只是把第乙個詢問刪掉了。。。
所以還是莫隊+樹狀陣列。
正解當然是莫隊+分塊,但是我不想寫啊。。。
然後這個莫隊過百萬系列是個什麼操作???
附**:
#include#include#include#include#define maxn 100010#define maxm 1000010
using namespace std;
int n,m,q,block;
int val[maxn],num[maxn],ans[maxm];
struct question
while(c>='0'&&c<='9')
return date*w;
}namespace bit
inline void add(int x,int v)
inline int sum(int x)
}inline void add(int x)
inline void del(int x)
void work()
for(int i=1;i<=m;i++)printf("%d\n",ans[i]);
}void init()
sort(que+1,que+m+1);
}int main()
BZOJ3809 Gty的二逼妹子序列
空間這麼小 然後就莫隊了 不知道三維kd tree能不能過 本來想打bit,結果發現過不了的樣子,因為修改比較多,詢問比較少,所以可以考慮平衡複雜度,用分塊維護 單次修改o 1 詢問o n code include include include include include include in...
bzoj3809 Gty的二逼妹子序列
先說一種很顯然的做法,大體框架肯定是莫隊,然後每來一種顏色就處理下,如果是新出現的就在bit當中把這個位置 1,如果這種顏色消失了就在bit中對應位置 1。這樣的時間複雜度是o nn log 2n 我交了一次發現超時了。那怎麼辦?觀察下,我們查詢和修改的複雜度都是o logn 但是顯然查詢的次數要遠...
bzoj 3809 Gty的二逼妹子序列
autumn和bakser又在研究gty的妹子序列了!但他們遇到了乙個難題。對於一段妹子們,他們想讓你幫忙求出這之內美麗度 a,b 的妹子的美麗度的種類數。為了方便,我們規定妹子們的美麗度全都在 1,n 中。給定乙個長度為n 1 n 100000 的正整數序列s 1 si n 對於m 1 m 100...