QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#811198#9865. Dollskkkgjyismine4TL 478ms10200kbC++201.3kb2024-12-12 16:24:452024-12-12 16:24:57

Judging History

你现在查看的是最新测评结果

  • [2025-01-08 13:49:40]
  • hack成功,自动添加数据
  • (/hack/1434)
  • [2024-12-12 16:24:57]
  • 评测
  • 测评结果:TL
  • 用时:478ms
  • 内存:10200kb
  • [2024-12-12 16:24:45]
  • 提交

answer

#include<bits/stdc++.h>
#define N 100005
using namespace std;
int ct[N],tr[N],n,a[N],tr1[N],tr2[N],f[N][20],g[N][20],dp[N];
int qry(int x,int v){
	for(int i=19;i>=0;--i)
		if(x+(1<<i)-1<=n&&g[x][i]>v)x+=(1<<i);
	return x;
}
int qry1(int x,int v){
	for(int i=19;i>=0;--i)
		if(x+(1<<i)-1<=n&&f[x][i]<v)x+=(1<<i);
	return x;
}
int st[N],tl,st1[N],tl1;
void solve(){
	scanf("%d",&n);
	for(int i=1;i<=n;++i)scanf("%d",&a[i]),tr1[i]=tr2[i]=0,f[i][0]=g[i][0]=a[i];
	for(int j=1;(1<<j)<=n;++j)
		for(int i=1;i+(1<<j)-1<=n;++i)
			f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]),
			g[i][j]=min(g[i][j-1],g[i+(1<<j-1)][j-1]);
	tl=tl1=0;
	for(int i=n;i;--i){
		while(tl&&a[st[tl]]<a[i])tr1[st[tl--]]=0;
		if(tl)tr1[st[tl]]=min(tr[st[tl]],qry(st[tl],a[i])-1);st[++tl]=i;
		while(tl1&&a[st1[tl1]]>a[i])tr2[st1[tl1--]]=0;
		if(tl1)tr2[st1[tl1]]=min(tr[st1[tl1]],qry1(st1[tl1],a[i])-1);st1[++tl1]=i;
		for(int j=i;j<=n;++j)ct[j]=0;
		for(int j=i;j<=n;++j){
			if(tr1[j])++ct[j],--ct[tr1[j]+1];
			if(tr2[j])++ct[j],--ct[tr2[j]+1];
		}tr[i]=dp[i]=0;
		for(int j=i+1;j<=n;++j){
			ct[j]+=ct[j-1];
			if(!ct[j]){tr[i]=j-1;break;}
		}if(!tr[i])tr[i]=n;
	}
        int x=1,ans=0;
        for(;x<=n;x=tr[x]+1)ans+=tr[x]-x;
        printf("%d\n",ans);
}
int main(){
	int T;cin>>T;
	while(T--)solve();
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 10056kb

input:

8
4
2 1 4 3
4
1 4 2 3
4
3 1 4 2
5
1 3 5 2 4
5
1 4 2 5 3
5
2 5 3 1 4
6
1 3 6 5 2 4
6
2 5 1 3 6 4

output:

3
3
2
3
3
3
4
4

result:

ok 8 numbers

Test #2:

score: 0
Accepted
time: 5ms
memory: 8020kb

input:

5913
1
1
2
1 2
2
2 1
3
1 2 3
3
1 3 2
3
2 1 3
3
2 3 1
3
3 1 2
3
3 2 1
4
1 2 3 4
4
1 2 4 3
4
1 3 2 4
4
1 3 4 2
4
1 4 2 3
4
1 4 3 2
4
2 1 3 4
4
2 1 4 3
4
2 3 1 4
4
2 3 4 1
4
2 4 1 3
4
2 4 3 1
4
3 1 2 4
4
3 1 4 2
4
3 2 1 4
4
3 2 4 1
4
3 4 1 2
4
3 4 2 1
4
4 1 2 3
4
4 1 3 2
4
4 2 1 3
4
4 2 3 1
4
4 3 1 2
4...

output:

0
1
1
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
2
3
3
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
3
4
4
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
3
4
3
3
4
4
3
4
3
3
3
4
3
4
4
4
3
3
3
3
4
4
4
4
3
4
4
3
4
4
4
4
3
3
3
3
4
4
4
3
4
3
3
3
4
3
4
4
3
3
4
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
3
4
4
3
4
4
4
4
4
4
4
...

result:

ok 5913 numbers

Test #3:

score: 0
Accepted
time: 4ms
memory: 8008kb

input:

8064
8
1 2 3 4 5 6 7 8
8
1 2 3 4 5 6 8 7
8
1 2 3 4 5 7 6 8
8
1 2 3 4 5 7 8 6
8
1 2 3 4 5 8 6 7
8
1 2 3 4 5 8 7 6
8
1 2 3 4 6 5 7 8
8
1 2 3 4 6 5 8 7
8
1 2 3 4 6 7 5 8
8
1 2 3 4 6 7 8 5
8
1 2 3 4 6 8 5 7
8
1 2 3 4 6 8 7 5
8
1 2 3 4 7 5 6 8
8
1 2 3 4 7 5 8 6
8
1 2 3 4 7 6 5 8
8
1 2 3 4 7 6 8 5
8
1 2 3...

output:

7
7
7
7
7
7
7
7
7
7
6
7
7
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
6
7
6
6
7
7
6
7
6
6
6
7
6
7
7
7
6
6
6
6
7
7
7
7
6
7
7
6
7
7
7
7
6
6
6
6
7
7
7
6
7
6
6
6
7
6
7
7
6
6
7
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
6
7
7
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
6
7
7
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
...

result:

ok 8064 numbers

Test #4:

score: 0
Accepted
time: 8ms
memory: 8008kb

input:

8064
8
2 6 3 4 1 5 7 8
8
2 6 3 4 1 5 8 7
8
2 6 3 4 1 7 5 8
8
2 6 3 4 1 7 8 5
8
2 6 3 4 1 8 5 7
8
2 6 3 4 1 8 7 5
8
2 6 3 4 5 1 7 8
8
2 6 3 4 5 1 8 7
8
2 6 3 4 5 7 1 8
8
2 6 3 4 5 7 8 1
8
2 6 3 4 5 8 1 7
8
2 6 3 4 5 8 7 1
8
2 6 3 4 7 1 5 8
8
2 6 3 4 7 1 8 5
8
2 6 3 4 7 5 1 8
8
2 6 3 4 7 5 8 1
8
2 6 3...

output:

6
6
6
6
6
6
7
7
7
7
6
7
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
6
7
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
6
7
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
...

result:

ok 8064 numbers

Test #5:

score: 0
Accepted
time: 8ms
memory: 9956kb

input:

8064
8
4 2 5 6 1 3 7 8
8
4 2 5 6 1 3 8 7
8
4 2 5 6 1 7 3 8
8
4 2 5 6 1 7 8 3
8
4 2 5 6 1 8 3 7
8
4 2 5 6 1 8 7 3
8
4 2 5 6 3 1 7 8
8
4 2 5 6 3 1 8 7
8
4 2 5 6 3 7 1 8
8
4 2 5 6 3 7 8 1
8
4 2 5 6 3 8 1 7
8
4 2 5 6 3 8 7 1
8
4 2 5 6 7 1 3 8
8
4 2 5 6 7 1 8 3
8
4 2 5 6 7 3 1 8
8
4 2 5 6 7 3 8 1
8
4 2 5...

output:

6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
5
5
6
6
5
6
5
5
5
6
5
6
6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
...

result:

ok 8064 numbers

Test #6:

score: 0
Accepted
time: 8ms
memory: 9964kb

input:

8064
8
5 7 4 6 1 2 3 8
8
5 7 4 6 1 2 8 3
8
5 7 4 6 1 3 2 8
8
5 7 4 6 1 3 8 2
8
5 7 4 6 1 8 2 3
8
5 7 4 6 1 8 3 2
8
5 7 4 6 2 1 3 8
8
5 7 4 6 2 1 8 3
8
5 7 4 6 2 3 1 8
8
5 7 4 6 2 3 8 1
8
5 7 4 6 2 8 1 3
8
5 7 4 6 2 8 3 1
8
5 7 4 6 3 1 2 8
8
5 7 4 6 3 1 8 2
8
5 7 4 6 3 2 1 8
8
5 7 4 6 3 2 8 1
8
5 7 4...

output:

6
5
6
5
5
5
6
5
6
6
5
5
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
6
7
6
6
6
7
6
7
6
6
6
7
6
7
6
6
6
6
6
6
6
6
6
7
6
7
6
6
6
7
6
7
7
6
6
6
6
7
7
6
6
6
6
6
6
6
6
7
6
6
6
6
6
7
6
7
7
6
6
7
6
7
7
7
7
6
6
6
6
6
6
7
6
7
6
6
6
7
6
7
7
6
6
7
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
...

result:

ok 8064 numbers

Test #7:

score: 0
Accepted
time: 8ms
memory: 9920kb

input:

8064
8
7 3 6 8 1 2 4 5
8
7 3 6 8 1 2 5 4
8
7 3 6 8 1 4 2 5
8
7 3 6 8 1 4 5 2
8
7 3 6 8 1 5 2 4
8
7 3 6 8 1 5 4 2
8
7 3 6 8 2 1 4 5
8
7 3 6 8 2 1 5 4
8
7 3 6 8 2 4 1 5
8
7 3 6 8 2 4 5 1
8
7 3 6 8 2 5 1 4
8
7 3 6 8 2 5 4 1
8
7 3 6 8 4 1 2 5
8
7 3 6 8 4 1 5 2
8
7 3 6 8 4 2 1 5
8
7 3 6 8 4 2 5 1
8
7 3 6...

output:

6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
5
6
6
6
6
6
6
6
6
6
6
6
6
5
5
5
5
6
6
6
6
5
6
6
5
6
6
6
6
5
5
5
5
6
6
6
5
6
5
5
5
6
5
6
6
5
5
6
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
5
6
6
5
6
6
6
6
6
6
6
6
6
6
7
6
7
6
6
6
...

result:

ok 8064 numbers

Test #8:

score: 0
Accepted
time: 12ms
memory: 10060kb

input:

10000
9
5 9 3 1 8 2 7 6 4
9
1 7 5 6 2 3 8 4 9
9
5 4 6 8 9 2 3 7 1
9
8 4 6 9 2 5 1 3 7
9
4 5 8 6 2 9 7 1 3
9
7 4 1 8 5 3 6 9 2
9
2 4 3 9 8 1 5 7 6
9
3 2 4 5 7 6 8 9 1
9
5 1 7 3 9 8 6 2 4
9
6 7 4 2 3 8 1 5 9
9
9 3 7 5 6 1 4 8 2
9
2 8 5 1 3 9 7 6 4
9
5 8 9 3 7 4 2 1 6
9
1 2 3 4 7 8 6 5 9
9
7 3 9 8 2 6 ...

output:

7
7
7
7
7
7
7
8
6
7
7
7
7
8
7
7
7
7
7
8
7
7
7
7
6
8
7
7
7
7
7
7
6
7
7
7
8
7
7
7
7
7
8
7
7
7
7
8
7
7
7
8
7
8
7
7
8
7
8
7
7
7
7
7
6
7
7
7
8
7
7
7
6
7
7
7
6
6
7
7
7
7
7
6
7
8
7
8
8
7
7
6
6
7
7
8
7
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
7
8
7
7
7
7
7
7
7
7
7
7
7
6
8
6
7
7
7
7
7
7
7
7
6
7
6
7
7
7
7
7
7
7
7
8
...

result:

ok 10000 numbers

Test #9:

score: 0
Accepted
time: 13ms
memory: 7936kb

input:

10000
10
6 5 10 7 2 4 8 9 3 1
10
1 5 4 2 8 9 3 10 7 6
10
10 1 9 7 4 5 2 3 6 8
10
6 3 10 4 1 8 9 7 5 2
10
1 5 9 8 10 4 2 3 7 6
10
1 3 9 6 10 8 4 2 5 7
10
3 10 1 2 9 7 6 5 4 8
10
3 8 2 9 4 5 10 1 6 7
10
8 5 1 6 7 9 4 10 3 2
10
1 8 6 9 7 5 10 2 4 3
10
3 5 8 2 6 4 9 7 1 10
10
10 2 4 3 9 8 5 6 7 1
10
9 6...

output:

8
8
9
7
8
8
8
7
8
8
8
9
8
8
8
8
8
8
8
8
8
8
7
7
7
8
8
8
8
7
9
8
8
7
7
8
8
7
7
8
8
8
8
8
8
8
7
7
8
7
7
8
8
8
7
9
8
8
8
8
8
8
8
8
8
8
8
8
8
9
8
8
7
7
8
9
8
8
8
8
7
9
8
8
8
7
7
8
7
8
8
8
8
8
8
8
8
7
8
7
8
8
8
7
8
8
8
8
8
7
8
8
8
8
8
8
8
7
8
8
7
8
8
8
8
8
8
8
8
8
9
7
8
8
8
7
7
7
9
8
8
8
7
8
8
7
8
7
8
8
...

result:

ok 10000 numbers

Test #10:

score: 0
Accepted
time: 22ms
memory: 8004kb

input:

1000
100
36 19 15 23 80 24 92 12 63 82 17 71 52 53 62 37 30 5 87 14 27 42 47 38 67 39 40 77 6 11 22 58 83 26 86 50 64 54 81 89 60 85 74 55 96 100 2 32 75 49 93 51 41 57 68 10 3 95 79 21 98 69 99 20 56 91 59 76 28 94 66 44 46 70 43 97 7 16 48 29 84 61 9 65 13 31 34 45 33 1 73 72 78 35 88 90 4 25 8 18...

output:

83
82
85
82
82
81
82
82
83
82
81
82
81
83
83
80
83
84
83
84
80
81
80
81
80
82
84
82
84
84
84
83
84
83
84
82
82
86
82
82
83
82
80
82
82
81
81
82
80
80
83
81
83
82
85
83
84
84
83
81
82
81
80
84
84
81
82
83
84
84
84
82
82
83
83
82
82
84
81
80
80
82
81
82
84
84
79
83
83
82
84
81
81
81
84
84
85
83
84
82
...

result:

ok 1000 numbers

Test #11:

score: 0
Accepted
time: 68ms
memory: 10080kb

input:

100
1000
550 971 302 95 28 284 617 922 674 216 841 488 304 342 88 271 306 556 106 206 22 722 319 730 603 112 877 59 910 921 490 973 35 323 495 9 507 869 834 542 391 86 359 69 837 830 498 645 852 974 790 766 255 98 269 231 452 720 728 925 652 214 91 484 878 592 217 763 487 400 868 66 328 195 923 955 ...

output:

822
826
827
836
825
819
833
828
819
825
826
829
825
828
827
823
826
832
827
822
826
833
824
827
819
821
819
824
830
815
833
831
822
828
835
829
827
824
836
829
822
833
823
830
823
825
823
828
835
827
823
821
831
826
826
822
826
822
831
836
825
829
832
833
825
830
828
822
827
820
831
840
826
827
830
...

result:

ok 100 numbers

Test #12:

score: 0
Accepted
time: 478ms
memory: 10200kb

input:

10
10000
4850 5255 5139 5540 1874 1076 4021 6824 4366 2054 2715 278 8256 4808 9269 3125 6278 690 6792 1562 3953 8690 6144 7653 8183 215 8338 6985 2329 6752 4704 3988 4919 9621 7203 1326 1144 8757 8689 7857 5536 9109 6881 1575 9834 8480 3599 2264 6399 7509 1483 6113 4446 9198 3827 5026 9359 1920 2 58...

output:

8244
8292
8266
8266
8270
8268
8239
8301
8265
8266

result:

ok 10 numbers

Test #13:

score: -100
Time Limit Exceeded

input:

1
100000
65813 44976 27024 51682 49956 83974 25996 21531 19397 20599 92239 41915 7525 99787 88995 7744 57150 76091 65404 74838 7825 29089 56605 44061 96855 45149 27163 61304 89985 96663 49997 20030 5553 10271 82109 56297 63936 56938 70627 55278 48648 99848 57194 49805 12947 24396 89020 60081 91704 2...

output:


result: